Submission #38594

#TimeUsernameProblemLanguageResultExecution timeMemory
38594funcsrRobots (IOI13_robots)C++14
28 / 100
1076 ms29816 KiB
#include "robots.h" #include <iostream> #include <string> #include <vector> #include <cmath> #include <queue> #include <set> #include <cassert> #include <algorithm> using namespace std; typedef pair<int, int> P; #define rep(i, n) for (int i=0; i<(n); i++) #define all(x) x.begin(), x.end() #define uniq(x) x.erase(unique(all(x)), x.end()) #define pb push_back #define _1 first #define _2 second #define INF 1145141919 #define MOD 1000000007 int putaway(int A, int B, int T, int X[], int Y[], int W[], int S[]) { int max_x = -1, max_y = -1; rep(i, A) X[i]--; rep(i, B) Y[i]--; sort(X, X+A); sort(Y, Y+B); rep(i, A) max_x = max(max_x, X[i]); rep(i, B) max_y = max(max_y, Y[i]); rep(i, T) if (W[i] > max_x && S[i] > max_y) return -1; if (T == 2 && A+B == 2) { bool a[2][2] = {}; rep(i, T) { int o = 0; rep(j, A) { if (W[i] <= X[j]) a[i][o] = true; o++; } rep(j, B) { if (S[i] <= Y[j]) a[i][o] = true; o++; } } if (a[0][0] && a[1][1]) return 1; if (a[0][1] && a[1][0]) return 1; return 2; } else if (B == 0) { int t = 0; multiset<int> vs; rep(i, T) vs.insert(W[i]); int l = 0; while (!vs.empty()) { t++; for (int i=l; i<A; i++) { auto it = vs.upper_bound(X[i]); if (it == vs.begin()) { l = i+1; continue; } vs.erase(--it); } } return t; } abort(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...