Submission #70664

#TimeUsernameProblemLanguageResultExecution timeMemory
70664octopusesAlternating Current (BOI18_alternating)C++17
55 / 100
3040 ms5416 KiB
//Giorgi Kldiashvili #include <bits/stdc++.h> #define ll long long using namespace std; const int N = 100020; int n, m; inline int dis(int x, int y) { if(y < x) return n + y - x + 1; return y - x + 1; } vector < pair < int, int > > A[N]; int answer[N], S[N][2]; int main() { scanf("%d %d", &n, &m); int ci, cm; ci = cm = 0; for(int i = 1; i <= m; ++ i) { int x, y; scanf("%d %d", &x, &y); A[x - 1].push_back(make_pair(dis(x, y), i)); if(dis(x, y) > cm) ci = x - 1, cm = dis(x, y); } for(ci = 0; ci < n; ++ ci) { for(int p = 0; p < n; ++ p) { int i = (p + ci) % n; for(int j = 0; j < A[i].size(); ++ j) { int x = A[i][j].first; int c = 0; for(int k = 0; k < n; ++ k) { int now = (i + k) % n; if(S[now][0] == 0) { c = 0; break; } if(S[now][1] == 0) { c = 1; break; } } answer[A[i][j].second] = c; for(int k = 0; k < x; ++ k) S[(i + k) % n][c] = 1; } } bool B = true; for(int i = 0; i < n; ++ i) if(S[i][0] == 0 || S[i][1] == 0) { B = false; break; } if(B) break; for(int i = 0; i < n; ++ i) S[i][0] = S[i][1] = 0; } for(int i = 0; i < n; ++ i) if(S[i][0] == 0 || S[i][1] == 0) return printf("impossible"), 0; for(int i = 1; i <= m; ++ i) printf("%d", answer[i]); }

Compilation message (stderr)

alternating.cpp: In function 'int main()':
alternating.cpp:41:24: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
       for(int j = 0; j < A[i].size(); ++ j)
                      ~~^~~~~~~~~~~~~
alternating.cpp:25:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d %d", &n, &m);
   ~~~~~^~~~~~~~~~~~~~~~~
alternating.cpp:30:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d %d", &x, &y);
     ~~~~~^~~~~~~~~~~~~~~~~
#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...