답안 #1005438

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1005438 2024-06-22T12:43:50 Z Almonther Party (POI11_imp) C++
27 / 100
3000 ms 43344 KB
#include <bits/stdc++.h>

#define suiii ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define ll long long
#define co cout<<
//#pragma GCC optimize("O3,Ofast,unroll-loops")
//#pragma GCC target("avx2,sse3,sse4,avx")
using namespace std;
//stuff
int n,m;
vector<int>v[3005];
bitset<3005>curr,mat[3005],vis;
int cnt=0;
void rec(int x){
    if(cnt==n/3){
        for(int i=0;i<3005;i++){
            if(curr[i]==1) co i<<' ';
        }
        exit(0);
    }
    if(x==n) return;
    if(n-x+cnt<n/3) return ;
    if((curr&mat[x])==curr){
        curr[x]=1;
        cnt++;
        rec(x+1);
        cnt--;
        curr[x]=0;
    }
    rec(x+1);
    return;
}
void rec1(ll x,ll last){
    if(x==n/3){
        for(int i=0;i<3005;i++){
            if(curr[i]==1) co i<<' ';
        }
        exit(0);
    }
    int num;
    if(last==-1){
        num=rand()%n+1;
        while(vis[num]||(curr&mat[num])!=curr) num=rand()%n+1;
    }
    else{
        num=v[last][rand()%v[last].size()];
        while(vis[num]||(curr&mat[num])!=curr) num=v[last][rand()%v[last].size()];
    }
    vis[num]=1;
    curr[num]=1;
    rec1(x+1,num);
    curr[num]=0;
    vis[num]=0;
}
void solve(){
    cin>>n>>m;
    for(int i=0;i<m;i++){
        ll a,b;
        cin>>a>>b;
        v[a].push_back(b);
        v[b].push_back(a);
        mat[a][b]=1;
        mat[b][a]=1;
    }
    if(n<=100) rec(0);
    else while(1) rec1(0,-1);
}
int main()
{
    suiii
    int t=1;
    // cin>>t;
    while(t--){
        solve();
    }
    return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 1 ms 604 KB Output is correct
4 Correct 1 ms 604 KB Output is correct
5 Correct 0 ms 604 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 3016 ms 604 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 6 ms 1368 KB Output is correct
2 Correct 34 ms 5456 KB Output is correct
3 Correct 35 ms 5456 KB Output is correct
4 Correct 35 ms 5460 KB Output is correct
5 Execution timed out 3060 ms 5284 KB Time limit exceeded
6 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 14 ms 1880 KB Output is correct
2 Correct 87 ms 12372 KB Output is correct
3 Correct 105 ms 12308 KB Output is correct
4 Correct 103 ms 12368 KB Output is correct
5 Correct 87 ms 12368 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 27 ms 4188 KB Output is correct
2 Correct 140 ms 17300 KB Output is correct
3 Correct 126 ms 17236 KB Output is correct
4 Execution timed out 3075 ms 16984 KB Time limit exceeded
5 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 77 ms 12400 KB Output is correct
2 Correct 168 ms 19024 KB Output is correct
3 Execution timed out 3051 ms 18864 KB Time limit exceeded
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 140 ms 16464 KB Output is correct
2 Correct 221 ms 21788 KB Output is correct
3 Correct 204 ms 21784 KB Output is correct
4 Execution timed out 3064 ms 21588 KB Time limit exceeded
5 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 186 ms 18772 KB Output is correct
2 Correct 279 ms 34788 KB Output is correct
3 Correct 270 ms 34640 KB Output is correct
4 Correct 263 ms 34388 KB Output is correct
5 Correct 269 ms 34640 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 243 ms 20556 KB Output is correct
2 Execution timed out 3073 ms 37556 KB Time limit exceeded
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 308 ms 37208 KB Output is correct
2 Execution timed out 3048 ms 41008 KB Time limit exceeded
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 363 ms 42832 KB Output is correct
2 Correct 404 ms 43344 KB Output is correct
3 Execution timed out 3031 ms 43344 KB Time limit exceeded
4 Halted 0 ms 0 KB -