QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#328063#856. Cactus11d10xyWA 6ms28412kbC++141.0kb2024-02-15 16:44:162024-02-15 16:44:17

Judging History

你现在查看的是最新测评结果

  • [2024-02-15 16:44:17]
  • 评测
  • 测评结果:WA
  • 用时:6ms
  • 内存:28412kb
  • [2024-02-15 16:44:16]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
int n,m,tot,st[300010],vis[300010],tp;
set<int>G[300010];
basic_string<int>ans,cir[300010];
void dfs(int u,int fa){
   st[++tp]=u,vis[u]=1;
   for(int v:G[u])if(v!=fa)if(!vis[v]){
      dfs(v,u);
      if(cir[u].empty())continue;
      cir[u].pop_back();
      int s=cir[u].size();
      for(int i=0;i<s;i++)ans+=cir[u][i]+(i&1)*n;
      for(int i=0;i<s;i++)ans+=cir[u][i]+(~i&1)*n;
   }else{cir[v]={};for(int i=tp;st[i+1]!=v;cir[v]+=st[i--]);G[v].erase(u);}
   tp--;
}
int main(){
   cin>>n>>m;
   for(int u,v;m--;)scanf("%d%d",&u,&v),G[u].insert(v),G[v].insert(u);
   set<int>s;
   for(int i=1;i<=n;i++)if(G[i].size()&1)s.insert(i);
   for(int u;!s.empty();){
      u=*begin(s),s.erase(u),ans+=u;
      for(int v:G[u]){
         if(G[v].size()&1)s.erase(v);
         else s.insert(v);
         G[v].erase(u);
      }
   }
   ans+=0;
   for(int i=1;i<=n;i++)if(!vis[i])dfs(i,0),ans+=i;
   printf("0 %d\n",(int)ans.size());
   for(int x:ans)if(x)printf("1 %d\n",x);else puts("2");
   return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 0
Wrong Answer
time: 6ms
memory: 28412kb

input:

2
2 1 100
1 2
6 7 3
1 2
2 3
3 1
4 5
5 6
6 4
1 4

output:

0 5
1 2
1 1
2
1 1
1 2

result:

wrong answer 1st numbers differ - expected: '9900', found: '0'