Submission #953078

#TimeUsernameProblemLanguageResultExecution timeMemory
953078WonderfulWhaleIOI Fever (JOI21_fever)C++17
0 / 100
1 ms348 KiB
#include<bits/stdc++.h> using namespace std; #define int int64_t #define pb push_back #define pii pair<int, int> #define st first #define nd second #define sz(x) (int)(x).size() #define all(x) (x).begin(), (x).end() int dx[] = {0, 0, 1, -1}; int dy[] = {1, -1, 0, 0}; pii tab[10]; int dir[10]; int dis[10]; bool vis[10]; int n; int ans = 0; void dijkstra() { // for(int i=0;i<n;i++) cerr << dir[i] << " "; // cerr << "\n"; fill(dis, dis+n, 1e9); memset(vis, 0, sizeof(vis)); dis[0] = 0; int cnt = 0; for(int i=0;i<n;i++) { pii cand = {1e9, -1}; for(int j=0;j<n;j++) { if(vis[j]) continue; cand = min(cand, {dis[j], j}); } // cerr << cand.st << " " << cand.nd << "\n"; if(cand.nd==-1) break; cnt++; vis[cand.nd] = true; int x = cand.nd; for(int j=0;j<n;j++) { if(vis[j]) continue; int y = j; int d1 = abs(tab[x].st-tab[y].st); int d2 = abs(tab[x].nd-tab[y].nd); if(d1!=d2) continue; pii p1 = {tab[x].st+dx[dir[x]]*d1, tab[x].nd+dy[dir[x]]*d1}; pii p2 = {tab[y].st+dx[dir[y]]*d1, tab[y].nd+dy[dir[y]]*d1}; if(p1!=p2) continue; dis[y] = min(dis[y], d1); } } // cerr << cnt << "\n"; ans = max(ans, cnt); } int32_t main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cin >> n; for(int i=0;i<n;i++) { cin >> tab[i].st >> tab[i].nd; } for(int i=0;i<(1<<(2*n));i++) { for(int j=0;j<2*n;j+=2) { bool a = i&(1<<j); bool b = i&(1<<(j+1)); dir[j/2] = 2*a+b; } dijkstra(); } cout << ans << "\n"; }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...