Submission #1228796

#TimeUsernameProblemLanguageResultExecution timeMemory
1228796salmonArranging Tickets (JOI17_arranging_tickets)C++20
Compilation error
0 ms0 KiB
#include <bits/stdc++.h>
using namespace std;

int N;
int M;
int l[3100];
int r[3100];
int pre[3100];
int diff[3100];

int main(){
	
	scanf(" %d",&N);
	scanf(" %d",&M);
	
	for(int i = 1; i <= M; i++){
		scanf(" %d",&l[i]);
		scanf(" %d",&r[i]);
		
		if(l[i] > r[i]) swap(l[i],r[i]);
		
		r[i]--;
		
		int h;
		scanf(" %d",&h);
	}
	
	pre[0] = 0;
	
	int s = 1;
	int e = N + 1;
	
	while(s != e){
		int m = (s + e)/2;
		
		for(int i = 1; i <= N; i++) pre[i] = 0;
		
		for(int i = 1; i <= N; i++){
			pre[l[i]]++;
			pre[r[i] + 1]--;
		}
		
		for(int i = 1; i <= N; i++){
			pre[i] += pre[i - 1]; 
		}
		
		pair<int,int> big = {0,-1};
		
		for(int i = 1; i <= N; i++){
			big = max(big,{pre[i],i});
		}
		
		int in = big.second;
		
		vector<pair<int,int>> proc;
		
		int big1 = 0;
		
		for(int i = 1; i <= in; i++){
			if(big1 < pre[i]){
				proc.push_back({pre[i],i});
				big1 = pre[i];
			}
		}
		
		for(int i = 0; i <= N; i++) diff[i] = 0;
		
		int num = 0;
		bool visited[M + 5];
		
		for(int i = 0; i <= M; i++) visited[i] = false;
		
		for(pair<int,int> ii : proc){
			while(true){
				if(ii.first - num <= m) break;
				
				pair<int,int> chose = {0,-1};
				
				for(int i = 1; i <= M; i++){
					if(!visited[i] && l[i] <= ii.second){
						chose = max(chose,{r[i],i});
					}
				}
				
				if(chose.second == -1){
					break;
				}
				
				num++;
				visited[chose.second] = true;
				diff[1]++;
				diff[l[chose.second]]--;
				diff[l[chose.second]]--;
				diff[r[chose.second] + 1]++;
				diff[r[chose.second] + 1]++;
			}
		}
		
		bool die = false;
		
		for(int i = 1; i <= N; i++){
			diff[i] += diff[i - 1];
			if(diff[i] + pre[i] > m) die = true;
		}

		printf("%d %d %d\n")

		if(die){
			s = m + 1;
		}
		else e = m;
	}
	
	printf("%d\n",s);
}

Compilation message (stderr)

arranging_tickets.cpp: In function 'int main()':
arranging_tickets.cpp:106:26: warning: format '%d' expects a matching 'int' argument [-Wformat=]
  106 |                 printf("%d %d %d\n")
      |                         ~^
      |                          |
      |                          int
arranging_tickets.cpp:106:29: warning: format '%d' expects a matching 'int' argument [-Wformat=]
  106 |                 printf("%d %d %d\n")
      |                            ~^
      |                             |
      |                             int
arranging_tickets.cpp:106:32: warning: format '%d' expects a matching 'int' argument [-Wformat=]
  106 |                 printf("%d %d %d\n")
      |                               ~^
      |                                |
      |                                int
arranging_tickets.cpp:106:37: error: expected ';' before 'if'
  106 |                 printf("%d %d %d\n")
      |                                     ^
      |                                     ;
  107 | 
  108 |                 if(die){
      |                 ~~                   
arranging_tickets.cpp:111:17: error: 'else' without a previous 'if'
  111 |                 else e = m;
      |                 ^~~~
arranging_tickets.cpp:13:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   13 |         scanf(" %d",&N);
      |         ~~~~~^~~~~~~~~~
arranging_tickets.cpp:14:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   14 |         scanf(" %d",&M);
      |         ~~~~~^~~~~~~~~~
arranging_tickets.cpp:17:22: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   17 |                 scanf(" %d",&l[i]);
      |                 ~~~~~^~~~~~~~~~~~~
arranging_tickets.cpp:18:22: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   18 |                 scanf(" %d",&r[i]);
      |                 ~~~~~^~~~~~~~~~~~~
arranging_tickets.cpp:25:22: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   25 |                 scanf(" %d",&h);
      |                 ~~~~~^~~~~~~~~~