답안 #1005435

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1005435 2024-06-22T12:41:34 Z Almonther Party (POI11_imp) C++
27 / 100
3000 ms 43860 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);
    }
    ll num;
    bitset<3005>dont={};
    if(last==-1){
        num=rand()%n+1;
        while(dont[num]||vis[num]||(curr&mat[num])!=curr) dont[num]=1,num=rand()%n+1;
    }
    else{
        num=v[last][rand()%v[last].size()];
        while(dont[num]||vis[num]||(curr&mat[num])!=curr) dont[num]=1,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 1 ms 344 KB Output is correct
2 Correct 0 ms 344 KB Output is correct
3 Correct 1 ms 604 KB Output is correct
4 Correct 1 ms 604 KB Output is correct
5 Correct 1 ms 604 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 3091 ms 604 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 1372 KB Output is correct
2 Correct 37 ms 5600 KB Output is correct
3 Correct 35 ms 5464 KB Output is correct
4 Correct 35 ms 5456 KB Output is correct
5 Execution timed out 3045 ms 5456 KB Time limit exceeded
6 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 11 ms 1884 KB Output is correct
2 Correct 82 ms 12372 KB Output is correct
3 Correct 80 ms 12368 KB Output is correct
4 Correct 86 ms 12372 KB Output is correct
5 Correct 86 ms 12404 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 25 ms 4436 KB Output is correct
2 Correct 143 ms 17488 KB Output is correct
3 Correct 129 ms 17300 KB Output is correct
4 Execution timed out 3072 ms 17100 KB Time limit exceeded
5 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 79 ms 12624 KB Output is correct
2 Correct 163 ms 19236 KB Output is correct
3 Execution timed out 3056 ms 19272 KB Time limit exceeded
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 140 ms 16596 KB Output is correct
2 Correct 208 ms 22100 KB Output is correct
3 Correct 213 ms 22096 KB Output is correct
4 Execution timed out 3036 ms 21840 KB Time limit exceeded
5 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 190 ms 19172 KB Output is correct
2 Correct 267 ms 34896 KB Output is correct
3 Correct 252 ms 34896 KB Output is correct
4 Correct 292 ms 34636 KB Output is correct
5 Correct 275 ms 35124 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 232 ms 20784 KB Output is correct
2 Execution timed out 3039 ms 37456 KB Time limit exceeded
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 248 ms 37716 KB Output is correct
2 Execution timed out 3050 ms 40984 KB Time limit exceeded
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 346 ms 42984 KB Output is correct
2 Correct 420 ms 43600 KB Output is correct
3 Execution timed out 3019 ms 43860 KB Time limit exceeded
4 Halted 0 ms 0 KB -