Submission #96173

# Submission time Handle Problem Language Result Execution time Memory
96173 2019-02-06T17:38:44 Z AKaan37 Schools (IZhO13_school) C++17
30 / 100
2000 ms 263168 KB
#include <bits/stdc++.h>

using namespace std;

typedef pair< int,int > PII;
typedef long long int lo;

#define fi first
#define se second
#define mp make_pair
#define pb push_back
#define fio() ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL)
#define FOR for(int i=1;i<=n;i++)
#define mid (bas+son)/2

const lo MAX = -1000000000000000000; 
const lo MIN = 1000000000000000000; 
const lo inf = 1000000000; 
const lo KOK = 100000; 
const lo LOG = 30; 
const lo li = 1000005; 
const lo mod = 1000000007; 

lo n,m,cev,b,a[li],hak1,hak2;
map< pair< lo,pair < lo,lo > > ,lo > mpp;
//~ map<int,int>
string s;
pair<lo,lo> p[li];
pair<lo,lo> pp[li];
vector<int> v;

lo f(lo sira,lo hakk,lo hakk1){
	lo mx=-inf;
	if(hakk<0) return -inf;
	if(hakk1<0) return -inf;
	if(sira>n){
		if(hakk==0 && hakk1==0)
			return 0;
		return -inf;
	}
	if(mpp.find(mp(sira,mp(hakk,hakk1)))!=mpp.end()) return mpp[mp(sira,mp(hakk,hakk1))];
	mx=max(mx,f(sira+1,hakk-1,hakk1)+p[sira].fi);
	mx=max(mx,f(sira+1,hakk,hakk1-1)+p[sira].se);
	mx=max(mx,f(sira+1,hakk,hakk1));
	return mpp[mp(sira,mp(hakk,hakk1))]=mx;
}

int main(){
	scanf("%lld %lld %lld",&n,&hak1,&hak2);
	FOR{
		scanf("%lld %lld",&p[i].fi,&p[i].se);
		pp[i].se=p[i].fi;
		pp[i].fi=p[i].se;
		//~ p[i].se=pp[i].fi;
		//~ pp[i].se=p[i].fi;
	}
	//~ sort(p+1,p+n+1);
	//~ sort(pp+1,pp+n+1);
	//~ reverse(p+1,p+n+1);
	//~ reverse(pp+1,pp+n+1);
	
	printf("%lld\n",f(1,hak1,hak2));
	return 0;
}

Compilation message

school.cpp: In function 'int main()':
school.cpp:49:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%lld %lld %lld",&n,&hak1,&hak2);
  ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
school.cpp:51:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%lld %lld",&p[i].fi,&p[i].se);
   ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 2 ms 380 KB Output is correct
3 Correct 2 ms 376 KB Output is correct
4 Correct 63 ms 5240 KB Output is correct
5 Correct 6 ms 888 KB Output is correct
6 Correct 574 ms 34304 KB Output is correct
7 Execution timed out 2074 ms 251360 KB Time limit exceeded
8 Execution timed out 2066 ms 100532 KB Time limit exceeded
9 Execution timed out 2075 ms 128608 KB Time limit exceeded
10 Execution timed out 2077 ms 184312 KB Time limit exceeded
11 Execution timed out 2081 ms 179832 KB Time limit exceeded
12 Execution timed out 2085 ms 195764 KB Time limit exceeded
13 Execution timed out 2110 ms 245416 KB Time limit exceeded
14 Runtime error 1866 ms 263168 KB Execution killed with signal 9 (could be triggered by violating memory limits)
15 Execution timed out 2073 ms 263168 KB Time limit exceeded
16 Execution timed out 2086 ms 152376 KB Time limit exceeded
17 Runtime error 1738 ms 263168 KB Execution killed with signal 9 (could be triggered by violating memory limits)
18 Runtime error 1909 ms 263168 KB Execution killed with signal 9 (could be triggered by violating memory limits)
19 Runtime error 1817 ms 263168 KB Execution killed with signal 9 (could be triggered by violating memory limits)
20 Runtime error 1698 ms 263168 KB Execution killed with signal 9 (could be triggered by violating memory limits)