Can be done in linear time :) Got AC in 0.04 sec.
#include<bits/stdc++.h>using namespace std;#define LIM 1000005int n,x,y,f,s;int contest[LIM][2];int v[LIM];int w[LIM];void s1(){for(int i=1;i<=1000000; ++i)if(v[i]==-1)v[i]=v[i-1];for(int i=1000000 ; i>=0 ; --i)if(w[i]==-1)w[i]=w[i+1];int temp,sol=-1;for(int i=0;i<n;++i){if( v[contest[i][0]]==-1 || w[contest[i][1]]==-1 )continue;temp = w[contest[i][1]] - v[contest[i][0]] + 1 ;if( sol==-1 || temp<sol )
Read more… (17 words)