Submission #739474

#TimeUsernameProblemLanguageResultExecution timeMemory
739474Ahmed57Untitled (POI11_smi)C++14
100 / 100
1441 ms111916 KiB
#include <bits/stdc++.h> using namespace std; vector<int> v;int in[100001],vis[100001]; int visited[1000001]; vector<pair<int,int>> adj[100001];int cnt = 0; map<pair<int,int>,int> mp; void dfs(int i){ vis[i] = 1; while(adj[i].size()){ if(visited[adj[i].back().second]){ adj[i].pop_back(); continue; } visited[adj[i].back().second] =1; int x = adj[i].back().first; adj[i].pop_back(); dfs(x); } v.push_back(i); } int main(){ ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0); int n,m; cin>>n>>m; for(int i = 0;i<m;i++){ int a,b,c,d; cin>>a>>b>>c>>d; if(c==d)continue; adj[a].push_back({b,i}); adj[b].push_back({a,i}); in[a]++;in[b]++; } for(int i = 1;i<=n;i++){ if(in[i]%2){ cout<<"NIE\n"; return 0; } } vector<vector<int>> all; for(int i = 1;i<=n;i++){ if(!vis[i]){ v.clear(); dfs(i); vector<int>tmp; reverse(v.begin(),v.end()); map<int,int>de; for(int j = 0;j<v.size();j++){ tmp.push_back(v[j]); de[v[j]]++; if(de[v[j]]>1){ vector<int>hla; int cn = 0; while(cn<2){ cn+=(tmp.back()==v[j]); de[tmp.back()]--; hla.push_back(tmp.back());tmp.pop_back(); } reverse(hla.begin(),hla.end()); all.push_back(hla); tmp.push_back(v[j]); de[v[j]]++; } } } } cout<<all.size()<<"\n"; for(auto i:all){cout<<i.size()-1<<" ";for(auto j:i)cout<<j<<" ";cout<<endl;} return 0; } //1221

Compilation message (stderr)

smi.cpp: In function 'int main()':
smi.cpp:48:28: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   48 |             for(int j = 0;j<v.size();j++){
      |                           ~^~~~~~~~~
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...