Submission #2868350
Source Code Expand
// finish date: 2018/07/19 #include <bits/stdc++.h> using namespace std; #define FOR(i, a, b) for(int (i)=a;(i)<(b);(i)++) #define rep(i, n) FOR(i,0,n) typedef long long ll; typedef vector<int> vi; typedef vector<vector<int>> vvi; typedef vector<vector<vector<int>>> vvvi; typedef vector<ll> vl; typedef vector<vector<ll>> vvl; typedef vector<double> vd; typedef vector<vector<double>> vvd; typedef vector<vector<vector<double>>> vvvd; typedef vector<bool> vb; typedef vector<vector<bool>> vvb; typedef vector<string> vs; typedef vector<char> vc; typedef vector<vector<char>> vvc; typedef pair<int, int> pii; typedef pair<ll, int> pli; typedef pair<ll, pair<int, int>> plii; const int bigmod = 1000000007; const int INF = 1050000000; const long long INFll = 100000000000000000; int main() { int N; cin >> N; N++; vi t(N); vi v(N); FOR(i, 1, N) { cin >> t[i]; if (i != 0) t[i] += t[i - 1]; } int sizeT = t[N - 1]; FOR(i, 1, N) cin >> v[i]; vd T(sizeT * 2 + 1, INF); //順方向 rep(i, N - 1) { rep(j, t[i] * 2) { T[j] = min(T[j], v[i + 1] + (t[i] * 2 - j) * 0.5); } FOR(j, t[i] * 2, t[i + 1] * 2) { T[j] = min(T[j], (double) v[i + 1]); } FOR(j, t[i + 1] * 2, T.size()) { T[j] = min(T[j], v[i + 1] + (j - t[i + 1] * 2) * 0.5); } } rep(i, T.size()) { T[i] = min(T[i], i * 0.5); T[i] = min(T[i], sizeT - 0.5 * i); } double ans = 0; FOR(i, 1, T.size()) { ans += (T[i] + T[i - 1]) * 0.25; // ans += T[i] * 0.5; // if (T[i] > T[i - 1]) { // ans -= 0.125; // } else if (T[i] < T[i - 1]) { // ans += 0.125; // } } printf("%.4f\n", ans); return 0; }
Submission Info
Submission Time | |
---|---|
Task | D - AtCoder Express |
User | TASSAN |
Language | C++14 (GCC 5.4.1) |
Score | 400 |
Code Size | 1884 Byte |
Status | AC |
Exec Time | 6 ms |
Memory | 512 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 400 / 400 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | s1.txt, s2.txt, s3.txt, s4.txt, s5.txt |
All | in01.txt, in02.txt, in03.txt, in04.txt, in05.txt, in06.txt, in07.txt, in08.txt, in09.txt, in10.txt, in11.txt, in12.txt, in13.txt, in14.txt, in15.txt, in16.txt, in17.txt, in18.txt, in19.txt, in20.txt, in21.txt, in22.txt, in23.txt, in24.txt, in25.txt, in26.txt, in27.txt, in28.txt, in29.txt, in30.txt, in31.txt, in32.txt, in33.txt, in34.txt, in35.txt, s1.txt, s2.txt, s3.txt, s4.txt, s5.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
in01.txt | AC | 1 ms | 256 KB |
in02.txt | AC | 1 ms | 256 KB |
in03.txt | AC | 1 ms | 256 KB |
in04.txt | AC | 1 ms | 256 KB |
in05.txt | AC | 4 ms | 384 KB |
in06.txt | AC | 3 ms | 384 KB |
in07.txt | AC | 3 ms | 384 KB |
in08.txt | AC | 3 ms | 384 KB |
in09.txt | AC | 4 ms | 384 KB |
in10.txt | AC | 3 ms | 384 KB |
in11.txt | AC | 4 ms | 384 KB |
in12.txt | AC | 2 ms | 256 KB |
in13.txt | AC | 1 ms | 256 KB |
in14.txt | AC | 2 ms | 256 KB |
in15.txt | AC | 1 ms | 256 KB |
in16.txt | AC | 2 ms | 256 KB |
in17.txt | AC | 1 ms | 256 KB |
in18.txt | AC | 1 ms | 256 KB |
in19.txt | AC | 1 ms | 256 KB |
in20.txt | AC | 4 ms | 384 KB |
in21.txt | AC | 3 ms | 384 KB |
in22.txt | AC | 3 ms | 384 KB |
in23.txt | AC | 1 ms | 256 KB |
in24.txt | AC | 6 ms | 512 KB |
in25.txt | AC | 6 ms | 512 KB |
in26.txt | AC | 4 ms | 384 KB |
in27.txt | AC | 4 ms | 384 KB |
in28.txt | AC | 1 ms | 256 KB |
in29.txt | AC | 1 ms | 256 KB |
in30.txt | AC | 1 ms | 256 KB |
in31.txt | AC | 3 ms | 384 KB |
in32.txt | AC | 3 ms | 384 KB |
in33.txt | AC | 3 ms | 384 KB |
in34.txt | AC | 1 ms | 256 KB |
in35.txt | AC | 1 ms | 256 KB |
s1.txt | AC | 1 ms | 256 KB |
s2.txt | AC | 1 ms | 256 KB |
s3.txt | AC | 1 ms | 256 KB |
s4.txt | AC | 1 ms | 256 KB |
s5.txt | AC | 1 ms | 256 KB |