#include <stdio.h>
#include <stdlib.h>
struct pair{
long long int x;
long long int y;
};
int compare( const void *a, const void *b )
{
if( (*( struct pair *)a).x > (*( struct pair *)b).x) return 1;
if( (*( struct pair *)a).x < (*( struct pair *)b).x) return -1;
return 0;
}
int main()
{
struct pair tab[1002];
int i,m;
long long int n,s,x,y,max=3000000000000;
scanf("%lld %d %lld",&n,&m,&s);
for(i=1;i<=m;i++)
{
scanf("%lld %lld",&x,&y);
tab[i].x=x;
tab[i].y=y;
}
tab[m+1].x=n+1;
tab[0].x=0;
tab[0].y=0;
qsort(tab,m+2,sizeof(struct pair),compare);
for(i=0;i<=m;i++)
{
if(tab[i].y+1>=tab[i+1].x) continue;
if(abs(tab[i].y+1-s) < abs(max-s)) max=tab[i].y+1;
if(abs(tab[i+1].x-1-s) < abs(max-s)) max=tab[i+1].x-1;
}
printf("%lld\n",max);
return 0;
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | #include <stdio.h> #include <stdlib.h> struct pair{ long long int x; long long int y; }; int compare( const void *a, const void *b ) { if( (*( struct pair *)a).x > (*( struct pair *)b).x) return 1; if( (*( struct pair *)a).x < (*( struct pair *)b).x) return -1; return 0; } int main() { struct pair tab[1002]; int i,m; long long int n,s,x,y,max=3000000000000; scanf("%lld %d %lld",&n,&m,&s); for(i=1;i<=m;i++) { scanf("%lld %lld",&x,&y); tab[i].x=x; tab[i].y=y; } tab[m+1].x=n+1; tab[0].x=0; tab[0].y=0; qsort(tab,m+2,sizeof(struct pair),compare); for(i=0;i<=m;i++) { if(tab[i].y+1>=tab[i+1].x) continue; if(abs(tab[i].y+1-s) < abs(max-s)) max=tab[i].y+1; if(abs(tab[i+1].x-1-s) < abs(max-s)) max=tab[i+1].x-1; } printf("%lld\n",max); return 0; } |
English