Submission #1236421

#TimeUsernameProblemLanguageResultExecution timeMemory
1236421amine_arouaParking (CEOI22_parking)C++20
0 / 100
47 ms5304 KiB
#include<bits/stdc++.h> using namespace std; using ll = long long; signed main() { int n , m; cin>>n>>m; vector<int> t(m) , b(m); vector<int> f(2 * n + 1 , -1); vector<pair<int ,int>> ops; for(int i = 0 ; i < m ; i++) { cin>>b[i]>>t[i]; } stack<int> empty; vector<int> nb(2 * n + 1); for(int i = 0 ; i < m ; i++) { if(b[i] == 0) { empty.push(i); continue; } if(b[i] == t[i]) continue; if(f[t[i]] == -1) { if(empty.empty()) { cout<<"-1\n"; return 0; } int l = empty.top(); empty.pop(); ops.push_back({l , i}); nb[t[i]]++; f[t[i]] = l; } else { nb[t[i]]++; ops.push_back({f[t[i]] , i}); } if(f[b[i]] == -1) { nb[b[i]]++; f[b[i]] = i; } else { nb[b[i]]++; ops.push_back({f[b[i]] , i}); } } for(int i = 1 ; i <= 2 * n ; i++) { if(nb[i] != 2) { cout<<"-1\n"; return 0; } } cout<<(int)ops.size()<<'\n'; for(auto [u , v] : ops) { cout<<u + 1<<" "<<v + 1<<'\n'; } }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...