/* * src.cpp * * Created on: 02-Feb-2018 * Author: pratik */ #include using namespace std; void maxpop(long long n,long long pop[100000],long long tl[100000],long long m,long long cl[100000],long long r[100000]) { // Return the maximum number of people that will be in a sunny town after removing exactly one cloud. long long apop[100000],ll,ul; for(long long i=0; i=tl[i]) { if(tl[j]>=ll && tl[j]<=ul) apop[i] += pop[j]; } else break; } } int flag = 0; long sunny = 0; for(long long i=0; i=ll && tl[i]<=ul) { flag = 1; break; } } if(flag == 0) sunny += pop[i]; } long max = apop[0]; for (long long i = 1; i < m; i++) if (apop[i] > max) max = apop[i]; cout << max + sunny << "\n"; } int main() { int n; cin >> n; long long pop[100000],tl[100000],m,cl[100000],r[100000]; // town pop for(long long i=0; i> pop[i]; //town location for(long long i=0; i> tl[i]; //n of c cin >> m; //l of c for(long long i=0; i> cl[i]; //r of c for(long long i=0; i> cl[i]; maxpop(n,pop,tl,m,cl,r); return 0; }