제출 #983898

#제출 시각아이디문제언어결과실행 시간메모리
983898vjudge1게임 (APIO22_game)C++17
30 / 100
2307 ms262144 KiB
#include "game.h" #include <bits/stdc++.h> using namespace std; #define TL ios::sync_with_stdio(0),cin.tie(0),cout.tie(0); #define rall(s) s.rbegin(),s.rend() #define all(s) s.begin(),s.end() #define pb push_back #define se second #define fi first #define ll long long #define ld long double #define YES cout<<"YES\n" #define Yes cout<<"Yes\n" #define yes cout<<"yes\n" #define NO cout<<"NO\n" #define No cout<<"No\n" #define no cout<<"no\n" const int N = 3e3 + 9 , mod = 1e9 + 7; bool a[N][1009][2] ; int b[N][1009][2] , ind = 0; vector<int>v[7000009]; int n , k; int ans = 0 , ind1 = 0; vector<int>v1; void get(int x , int y , int f){ a[x][y][f] = 1; int m = b[x][y][f]; for(auto to : v[m]) if(!a[to][y][f]) get(to , y , f); v[m].clear(); b[x][y][f] = 0; v1.pb(m); } void add(int x , int y , int f , int p){ if(b[x][y][f] == 0){ if(ind < 7e6) b[x][y][f] = ++ind; else b[x][y][f] = v1[ind1] , ind1++; } v[b[x][y][f]].pb(p); } void init(int n, int k){ ::n = n , ::k = k; for(int i = 1; i <= k; i++) a[i][i][0] = a[i][i][1] = 1; for(int i = 1; i < k; i++){ for(int j = 1; j <= k; j++){ if(!a[i + 1][j][0]) add(i , j , 0 , i + 1); if(!a[i][j][1]) add(i + 1 , j , 1 , i); if(a[i][j][0]) get(i , j ,0); if(a[i + 1][j][1]) get(i + 1,j , 1); } } } int add_teleporter(int x , int y){ if(ans == 1) return ans; x++ , y++; for(int i = 1; i <= k; i++){ if(!a[y][i][0]) add(x , i , 0 , y); if(!a[x][i][1]) add(y , i , 1 , x ); if(a[x][i][0] && a[y][i][1]) ans = 1; if(a[x][i][0]) get(x , i , 0); if(a[y][i][1]) get(y , i , 1); } return ans; } /* int main(){ TL; #ifndef ONLINE_JUDGE freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout); #endif init(6 , 3); cout<<add_teleporter(3 , 4)<<"\n"; cout<<add_teleporter(5 , 0)<<"\n"; cout<<add_teleporter(4 , 5)<<"\n"; cout<<add_teleporter(5 , 3)<<"\n"; cout<<add_teleporter(1 , 4)<<"\n"; }*/ // Author : حسن
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...