Submission #523623

#TimeUsernameProblemLanguageResultExecution timeMemory
523623zipdang04자리 배치 (IOI18_seats)C++14
0 / 100
4097 ms47540 KiB
#include <bits/stdc++.h> using namespace std; /* #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> using namespace __gnu_pbds; typedef tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> ordered_set; */ typedef long long ll; typedef long double ld; typedef vector<int> vi; typedef vector<ll> vl; typedef pair<int, int> pii; typedef pair<ll, ll> pll; typedef map<int, int> mii; typedef unordered_map<int, int> umii; typedef map<ll, ll> mll; typedef unordered_map<ll, ll> umll; template <class T1, class T2> void maximize(T1 &a, T2 b){ if (b > a) a = b; } template <class T1, class T2> void minimize(T1 &a, T2 b){ if (b < a) a = b; } template <class T> void read(T &number) { bool negative = false; register int c; number = 0; c = getchar(); while (c != '-' && !isalnum(c)) c = getchar(); if (c=='-'){ negative = true; c = getchar(); } for (; (c>47 && c<58); c=getchar()) number = number *10 + c - 48; if (negative) number *= -1; } template <class T, class ...Ts> void read(T &a, Ts& ... args){ read(a); read(args...); } /* struct Node { int node, len; Node() {node = len = 0;} Node(int node, int len) {this -> node = node, this -> len = len;} }; typedef vector<Node> vg; */ #define MAX 1000001 #define MOD 1000000007 #define fi first #define se second #define pf push_front #define pb push_back #define FOR(type, i, a, b) for(type i = (a); i <= (b); i++) #define FORD(type, i, b, a) for(type i = (b); i >= (a); i--) #define testBit(n, bit) ((n >> bit) & 1) #define flipBit(n, bit) (n ^ (1ll << bit)) #define cntBit(n) __builtin_popcount(n) #define cntBitll(n) __builtin_popcountll(n) #define randomize mt19937_64 mt(chrono::steady_clock::now().time_since_epoch().count()); #include "seats.h" struct Rect{ int rMin, rMax, cMin, cMax; }; Rect cal(Rect a, Rect b){ return { min(a.rMin, b.rMin), max(a.rMax, b.rMax), min(a.cMin, b.cMin), max(a.cMax, b.cMax) }; } int h, w, all; Rect pos[MAX]; void give_initial_chart(int H, int W, vector<int> R, vector<int> C) { h = H, w = W;all = h * w; FOR(int, i, 0, all - 1) pos[i] = {R[i], R[i], C[i], C[i]}; } int swap_seats(int a, int b) { Rect haha = pos[0]; int answer = 0; for (int i = 0; i < all; i++){ haha = cal(haha, pos[i]); if ((haha.rMax - haha.rMin + 1) * (haha.cMax - haha.cMin + 1) == i + 1) answer++; } return answer; }
#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...