Submission #522403

#TimeUsernameProblemLanguageResultExecution timeMemory
522403LucaDantasAlternating Current (BOI18_alternating)C++17
0 / 100
3072 ms1988 KiB
#include <bits/stdc++.h> using namespace std; constexpr int maxn = 1e5+10; using pii = pair<int,int>; vector<pair<pii, int>> wires; bool mark[maxn][2]; int n, m; void go(int l, int r, int c) { for(int i = l; i <= r; i++) mark[(i-1)%n+1][c] = 1; } bool bom() { for(int i = 1; i <= n; i++) if(!mark[i][0] || !mark[i][1]) return 0; return 1; } void solve(int st) { memset(mark, 0, sizeof mark); vector<int> ans(m); int a = 1, b = 1, cor = 0, bruh = 1; for(int i = st; bruh || i != st; i = (i+1)%m, bruh = 0) { if(a > b) swap(a, b), cor ^= 1; a = max(a, wires[i].first.second + 1); go(wires[i].first.first, wires[i].first.second, cor); ans[wires[i].second] = cor; } if(!bom()) return; for(int i = 0; i < m; i++) printf("%d", ans[i]); puts(""); exit(0); } int main() { scanf("%d %d", &n, &m); for(int i = 0, a, b; i < m; i++) { scanf("%d %d", &a, &b); if(b < a) b += n; wires.push_back({{a, b}, i}); } sort(wires.begin(), wires.end()); for(int i = 0; i < m; i++) solve(i); puts("impossible"); }

Compilation message (stderr)

alternating.cpp: In function 'int main()':
alternating.cpp:43:7: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   43 |  scanf("%d %d", &n, &m);
      |  ~~~~~^~~~~~~~~~~~~~~~~
alternating.cpp:45:8: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   45 |   scanf("%d %d", &a, &b);
      |   ~~~~~^~~~~~~~~~~~~~~~~
#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...