lignja.c
来自「PASCAL光盘资料PASCAL光盘资料PASCAL光盘资料」· C语言 代码 · 共 66 行
C
66 行
/*
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 + =
减小字号Ctrl + -
显示快捷键?