Submission #864048

#TimeUsernameProblemLanguageResultExecution timeMemory
864048manizareArranging Tickets (JOI17_arranging_tickets)C++14
0 / 100
7 ms29272 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 = 6e5 + 10 , sq = 3 , maxq = 1e7 + 1 , inf = 1e18 + 10 , mod= 998244353 ,lg = 20 ; vector <pair <pii , int> > ed ; vector <int> vec[maxn] , k[maxn]; int pr[maxn] , n , m ; int ch(int x , int val){ priority_queue <int> pq ; for(int i =0 ; i < n ; i++){ pr[i] =0 ; } for(int i =0 ; i < ed.size() ; i++){ int a = ed[i].F.F , b = ed[i].F.S; a = (a-x+n)%n ; b = (b-x+n)%n; if(b < a)swap(a , b) ; pr[a] ++ ; pr[b]-- ; k[a].pb(b); } int ans =0 ; for(int i =0 ; i < n ; i++){ if(i)pr[i] += pr[i-1] ; for(int j =0 ; j < k[i].size() ; j++){ pq.push(k[i][j]) ; } while(pq.size() && pr[i] > val){ 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() { ios::sync_with_stdio(0) ; cin.tie(0) ; cout.tie(0) ; cin >> n >> m ; for(int i =1 ; i <= m ; i++){ int a , b , c; cin >> a >> b >> c ; a--; b--; pr[a]++; pr[b]--; ed.pb({{a, b} , c}) ; } for(int i = 1; i< n ;i++){ pr[i]+= pr[i-1] ; } int mx= 0 ; for(int i = 0 ; i < n ; i++){ if(pr[i] > pr[mx])mx = i ; } cout << min(ch(mx+1 , 0) , ch(mx+1 , 1)+1) << "\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...