# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
105796 | 2019-04-15T00:38:56 Z | gs18103 | None (KOI16_dist) | C++ | 3 ms | 512 KB |
#include <bits/stdc++.h> using namespace std; long long arr[1010][4]; long long ans; int n, T; long long dp[10101010]; long long cal_dis(int t) { if(dp[t] != 0) return dp[t]; long long dis = 0; for(int i = 0; i < n; i++) { for(int j = 0; j < n; j++) { if(i == j) continue; dis = max(dis, (arr[i][0]-arr[j][0]+t*(arr[i][2]-arr[j][2]))*(arr[i][0]-arr[j][0]+t*(arr[i][2]-arr[j][2]))+ (arr[i][1]-arr[j][1]+t*(arr[i][3]-arr[j][3]))*(arr[i][1]-arr[j][1]+t*(arr[i][3]-arr[j][3]))); } } return dp[t] = dis; } int search(int s, int e) { if(s == e) { return s; } if(s + 1 == e) { if(cal_dis(s) > cal_dis(e)) return e; else return s; } if(s + 2 == e) { long long d = min(cal_dis(s), min(cal_dis(s+1), cal_dis(e))); if(d == cal_dis(s)) return s; if(d == cal_dis(s+1)) return s+1; if(d == cal_dis(e)) return e; } int t1 = s + (e - s) / 3, t2 = s + ((e - s) * 2) / 3; long long dis1 = cal_dis(t1), dis2 = cal_dis(t2); if(dis1 < dis2) return search(s, t2-1); else return search(t1+1, e); } int main() { scanf("%d %d", &n, &T); for(int i = 0; i < n; i++) for(int j = 0; j < 4; j++) scanf("%lld", &arr[i][j]); int ans = search(0, T); printf("%d\n%lld", ans, cal_dis(ans)); }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 512 KB | Output is correct |
2 | Correct | 2 ms | 512 KB | Output is correct |
3 | Incorrect | 2 ms | 512 KB | Output isn't correct |
4 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 512 KB | Output is correct |
2 | Correct | 2 ms | 512 KB | Output is correct |
3 | Incorrect | 2 ms | 512 KB | Output isn't correct |
4 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Execution timed out | 3 ms | 384 KB | Time limit exceeded (wall clock) |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 512 KB | Output is correct |
2 | Correct | 2 ms | 512 KB | Output is correct |
3 | Incorrect | 2 ms | 512 KB | Output isn't correct |
4 | Halted | 0 ms | 0 KB | - |