QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#84710 | #4513. Slide Parade | fansizhe | 0 | 3ms | 3808kb | C++23 | 1.5kb | 2023-03-06 17:35:09 | 2023-03-06 17:35:10 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
int n,m;
vector<int> edge[405];
int eid[205][205];
int vis[405];
int ex[5005],ey[5005];
int to[405];
int num[5005];
int mat[205][205];
int dfs(int x){
vis[x]=1;
for(int y:edge[x])if(!to[y]){to[x]=y,to[y]=x;return 1;}
for(int y:edge[x])if(!vis[to[y]]&&dfs(to[y])){to[x]=y,to[y]=x;return 1;}
return 0;
}
stack<int> st;
void solve(int x){
for(int y=1;y<=n;y++)if(mat[x][y])mat[x][y]--,solve(y);
st.push(x);
}
int main(){
int _;scanf("%d",&_);
for(int __=1;__<=_;__++){
scanf("%d%d",&n,&m);
for(int i=1;i<=2*n;i++)edge[i].clear();
memset(num,0,sizeof(num));
memset(to,0,sizeof(to));
memset(mat,0,sizeof(mat));
for(int i=1;i<=m;i++){
int x,y;scanf("%d%d",&x,&y);
edge[x].push_back(y+n);
edge[y+n].push_back(x);
ex[i]=x,ey[i]=y;
eid[x][y]=i;
}
int nosol=0;
for(int i=1;i<=n;i++){
memset(vis,0,sizeof(vis));
if(!dfs(i)){nosol=1;break;}
}
if(nosol){printf("Case #%d: IMPOSSIBLE\n",__);continue;}
for(int i=1;i<=n;i++)num[eid[i][to[i]-n]]++;
for(int i=1;i<=m;i++)if(!num[i]){
memset(vis,0,sizeof(vis));
int x=ex[i],y=ey[i]+n,tx=to[x],ty=to[y];
to[x]=y,to[y]=x;vis[x]=1;
to[tx]=to[ty]=0;
if(!dfs(tx)){nosol=1;break;}
for(int j=1;j<=n;j++)num[eid[j][to[j]-n]]++;
}
if(nosol){printf("Case #%d: IMPOSSIBLE\n",__);continue;}
for(int i=1;i<=m;i++)mat[ex[i]][ey[i]]=num[i];
solve(1);
printf("Case #%d: %d\n",__,st.size());
while(!st.empty())printf("%d ",st.top()),st.pop();puts("");
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 0
Wrong Answer
time: 3ms
memory: 3808kb
input:
100 5 8 1 2 1 3 1 4 1 5 2 1 3 1 4 1 5 1 5 10 1 3 1 4 2 3 2 5 3 1 3 4 3 5 4 2 5 1 5 3 5 10 1 4 2 3 2 5 3 1 3 5 4 2 4 3 4 5 5 1 5 2 3 6 1 2 1 3 2 1 2 3 3 1 3 2 5 10 1 2 1 5 2 3 2 4 3 1 4 3 4 5 5 2 5 3 5 4 4 10 1 2 1 3 1 4 2 1 2 3 2 4 3 1 3 4 4 2 4 3 5 10 1 2 1 3 2 1 2 4 3 1 3 5 4 2 4 5 5 3 5 4 5 10 1 ...
output:
Case #1: IMPOSSIBLE Case #2: 26 1 3 1 3 1 3 4 2 5 1 4 2 5 1 4 2 5 3 4 2 5 3 4 2 5 1 Case #3: 21 1 4 2 3 1 4 2 3 1 4 3 5 1 4 5 2 3 5 2 5 1 Case #4: 10 1 2 1 2 3 1 3 2 3 1 Case #5: 21 1 2 3 1 2 3 1 2 4 3 1 5 2 4 5 4 5 4 5 3 1 Case #6: 21 1 2 1 3 1 3 4 2 1 3 4 2 1 3 4 2 4 3 4 2 1 Case #7: 26 1 2 1...
result:
wrong answer the slide from 2 to 3 hasn't be used (test case 2)
Test #2:
score: 0
Time Limit Exceeded
input:
100 199 4980 1 95 1 96 1 105 1 124 1 130 1 131 1 135 1 137 1 139 1 140 1 141 1 147 1 155 1 172 1 174 1 179 1 183 1 188 1 193 1 196 1 197 2 3 2 5 2 13 2 14 2 17 2 20 2 24 2 26 2 30 2 41 2 44 2 45 2 52 2 56 2 67 2 70 2 71 2 74 2 78 2 84 2 85 2 90 2 92 2 93 2 97 2 107 2 111 2 113 2 122 2 124 2 128 2 13...
output:
Case #1: 924953 1 95 104 95 104 95 104 95 104 95 104 95 104 95 104 95 104 95 104 95 104 95 104 95 104 95 104 95 104 95 104 95 104 95 104 95 104 95 104 95 104 95 104 95 104 95 104 95 104 95 104 95 104 95 104 95 104 95 104 95 104 95 104 95 104 95 104 95 104 95 104 95 104 95 104 95 104 95 104 95 104 95...