Cod sursa(job #245138)

Utilizator mottyMatei-Dan Epure motty Data 16 ianuarie 2009 22:06:18
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include<stdio.h>
#include<stdlib.h>
#define N 5001

struct lvl{
	int a,b;
};

lvl v[N];

int n,k,m;

void citire()
{
	int i;
	scanf("%d%d%d",&n,&k,&m);
	for(i=0;i<k;++i)
		scanf("%d%d",&v[i].a,&v[i].b);
}

int compar(const void *p,const void *q)
{
	lvl x=*(lvl*)p,y=*(lvl*)q;
	if(x.b>y.b)
		return -1;
	if(x.b<y.b)
		return 1;
	return 0;
}

void calcul()
{
	int zu=0,i;
	for(i=0;i<=k && n<m;++i)
		if(v[i].a<=n && v[i].b>n)
		{
			n=v[i].b;
			i=-1;
			++zu;
		}
	printf("%d %d\n",n,zu);
}

int main()
{
	freopen("joc7.in","r",stdin);
	freopen("joc7.out","w",stdout);
	citire();
	qsort(v,k,sizeof(v[0]),compar);
	calcul();
	return 0;
}