⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lignja.c

📁 PASCAL光盘资料PASCAL光盘资料PASCAL光盘资料
💻 C
字号:

/*
DMIH 2002, Drugi dan natjecanja
Srednjoskolska skupina, I. podskupina
Zadatak LIGNJA, Programski jezik C
*/

#include <stdio.h>
#include <stdlib.h>
#define MAXN 10005
#define MAXK 10005

struct lista
{
	int v;
    struct lista *next;
};

FILE *fin, *fout;
int n, k;
struct lista *polje[MAXN];

int rje[MAXN];

int main( void )
{
    int i, x, y;
    int max;
    struct lista *l;

	fin = fopen( "lignja.in", "rt" );
    fscanf( fin, "%d %d", &n, &k );
    for( i = 1; i <= n; i++ ) polje[i] = NULL;
    for( i = 1; i <= k; i++ )
    {
    	fscanf( fin, "%d %d", &x, &y );
        l = (struct lista*)malloc( sizeof( struct lista ) );
        l->v = x + y;
        l->next = polje[x];
        polje[x] = l;
    }

    rje[n + 1] = 0;

   	for( i = n ; i >= 1; i-- )
    {
    	max = -1;
    	if( polje[i] == NULL ) rje[i] = rje[i + 1] + 1;
        else
        {
        	l = polje[i];
        	while( l != NULL )
        	{
        		if( rje[l->v] > max ) max = rje[(*l).v];
                l = l -> next;
        	}
        	rje[i] = max;
        }
    }
    fout = fopen( "lignja.out", "wt" );
    fprintf( fout, "%d\n", rje[1] );
    fclose( fout);
    fclose( fin );
	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -