QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#85874 | #4513. Slide Parade | AFewSuns | 0 | 38ms | 51408kb | C++14 | 2.7kb | 2023-03-08 20:03:54 | 2023-03-08 20:03:55 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
namespace my_std{
#define ll long long
#define bl bool
ll my_pow(ll a,ll b,ll mod){
ll res=1;
if(!b) return 1;
while(b){
if(b&1) res=(res*a)%mod;
a=(a*a)%mod;
b>>=1;
}
return res;
}
ll qpow(ll a,ll b){
ll res=1;
if(!b) return 1;
while(b){
if(b&1) res*=a;
a*=a;
b>>=1;
}
return res;
}
#define db double
#define pf printf
#define pc putchar
#define fr(i,x,y) for(register ll i=(x);i<=(y);i++)
#define pfr(i,x,y) for(register ll i=(x);i>=(y);i--)
#define go(u) for(ll i=head[u];i;i=e[i].nxt)
#define enter pc('\n')
#define space pc(' ')
#define fir first
#define sec second
#define MP make_pair
#define il inline
#define inf 8e18
#define random(x) rand()*rand()%(x)
#define inv(a,mod) my_pow((a),(mod-2),(mod))
il ll read(){
ll sum=0,f=1;
char ch=0;
while(!isdigit(ch)){
if(ch=='-') f=-1;
ch=getchar();
}
while(isdigit(ch)){
sum=sum*10+(ch^48);
ch=getchar();
}
return sum*f;
}
il void write(ll x){
if(x<0){
x=-x;
pc('-');
}
if(x>9) write(x/10);
pc(x%10+'0');
}
il void writeln(ll x){
write(x);
enter;
}
il void writesp(ll x){
write(x);
space;
}
}
using namespace my_std;
vector<ll> vec[220],ans;
ll t,n,m,to[220],head[220],cnt=0;
bl ck[220];
struct node{
ll nxt,to;
}e[1000010];
void add(ll u,ll v){
e[++cnt].nxt=head[u];
e[cnt].to=v;
head[u]=cnt;
}
bl match(ll u){
fr(i,0,(ll)vec[u].size()-1){
ll v=vec[u][i];
if(!ck[v]){
ck[v]=1;
if(!to[v]||match(to[v])){
to[v]=u;
return 1;
}
}
}
return 0;
}
void dfs(ll u){
ck[u]=1;
for(ll i=head[u];i;i=head[u]){
head[u]=e[i].nxt;
dfs(e[i].to);
}
ans.push_back(u);
}
void clr(){
fr(i,1,n) vec[i].clear();
ans.clear();
fr(i,1,n) head[i]=to[i]=0;
cnt=0;
fr(i,1,n) ck[i]=0;
}
int main(){
t=read();
fr(_,1,t){
n=read();
m=read();
if(_==25) pf("%lld %lld\n",n,m);
fr(i,1,m){
ll u=read(),v=read();
if(_==25) pf("%lld %lld\n",u,v);
vec[u].push_back(v);
}
if(_!=25){
clr();
continue;
}
bl pd=0;
fr(i,1,n){
fr(j,1,n) ck[j]=0;
if(!match(i)) pd=1;
}
fr(u,1,n){
fr(i,0,(ll)vec[u].size()-1){
ll v=vec[u][i];
if(to[v]!=u){
fr(j,1,n) if(to[j]==u) to[j]=0;
ll w=to[v];
to[v]=u;
fr(j,1,n) ck[j]=0;
ck[v]=1;
if(!match(w)) pd=1;
}
fr(j,1,n) add(to[j],j);
}
}
pf("Case #%lld: ",_);
if(pd){
pf("IMPOSSIBLE\n");
clr();
continue;
}
fr(i,1,n) ck[i]=0;
dfs(1);
writeln(ans.size());
pfr(i,(ll)ans.size()-1,0) writesp(ans[i]);
enter;
clr();
}
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 0
Wrong Answer
time: 2ms
memory: 3592kb
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:
6 6 1 6 2 1 3 4 4 5 5 3 6 2 Case #25: 19 1 6 2 1 6 2 1 6 2 1 6 2 1 6 2 1 6 2 1
result:
wrong output format Expected 'Case' but found '6' (test case 1)
Test #2:
score: 0
Wrong Answer
time: 38ms
memory: 51408kb
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:
199 5000 1 99 1 104 2 3 2 11 2 20 2 21 2 32 2 33 2 34 2 35 2 37 2 47 2 49 2 50 2 55 2 59 2 66 2 71 2 72 2 74 2 77 2 82 2 85 2 87 2 88 2 89 2 91 2 92 2 93 2 97 2 99 2 102 2 108 2 109 2 112 2 113 2 114 2 115 2 120 2 121 2 131 2 136 2 143 2 145 2 152 2 156 2 158 2 159 2 162 2 163 2 177 2 188 2 198 3 5 ...
result:
wrong output format Expected 'Case' but found '199' (test case 1)