제출 #853630

#제출 시각아이디문제언어결과실행 시간메모리
853630manizareArranging Tickets (JOI17_arranging_tickets)C++14
0 / 100
1 ms348 KiB
#include <bits/stdc++.h> #define pb push_back #define F first #define S second #define all(a) a.begin(),a.end() #define pii pair <int,int> #define Pii pair< pii , pii > #define int long long using namespace std ; mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); const int maxn = 4000 + 10 , maxq = 1e7 + 1 , inf = 1e18 + 10 , mod= 998244353 ,lg = 20 ; vector <pii> que ;int pr[maxn] , n ; vector <int> k[maxn] ; int ch(int x){ priority_queue <int> pq ; for(int i =0 ; i < que.size() ; i++){ int a = que[i].F , b = que[i].S ; a = (a-x+n)%n ; b = (b-x+n)%n; if(b < a)swap(a , b) ; k[a].pb(b); } int ans =0 ; for(int i =0 ; i < n ; i++){ pr[i] += pr[i-1] ; pr[i] += k[i].size(); for(int j =0 ; j < k[i].size() ; j++){ pr[k[i][j]] -= 1 ; pq.push(k[i][j]) ; } while(pr[i] > 0){ int v = pq.top() ; pq.pop() ; pr[i]-=2 ; pr[v]+=2 ; ans++; } } for(int i = 0 ; i< n ; i++){ k[i].clear() ; } return ans ; } signed main(){ int m ; cin >> n >> m ; for(int i = 1; i <= m ; i++){ int a , b , c; cin >> a >> b >> c; a--;b--; que.pb({a,b}) ; } int a =0 ; for(int i = 0; i < n ; i++){ a = max(a , ch(i)) ; } cout << a ; } /* */
#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...