Pagini recente » Cod sursa (job #491871) | Cod sursa (job #895676) | Cod sursa (job #1928014) | Cod sursa (job #2302563) | Cod sursa (job #19003)
Cod sursa(job #19003)
/*#include "stdafx.h"
#include "infoarena.h"
#include <conio.h>/**/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define _GHIOZDAN_
#ifdef _GHIOZDAN_
#ifndef _INC_CONIO
void clrscr()
{
freopen("ghiozdan.out", "w", stdout);
}
void getch() {}
#else
void clrscr() {}
#endif
#define rep(i,n) for(i=0;i<n;i++)
char a[75001][201];
int o[200];
int q[75001], s, e;
int inq[75001];
int m;
int n, g;
#define min(a,b) (((a) < (b)) ? (a) : (b))
int main()
{
clrscr();
FILE *fin = fopen("ghiozdan.in", "r");
int i,j,k;
fscanf(fin, "%d %d", &n, &g);
rep(i,n)
{
int obj;
fscanf(fin, "%d", &obj);
if (!o[obj])
{
a[obj][obj] = 1;
q[e++] = obj;
inq[obj] = 1;
o[obj] = 1;
}
else o[obj]++;
}
while (s<=e)
{
int to = min(200, g-q[s]);
for(i=1;i<=to;i++)
{
if (a[q[s]][i] < o[i] && !inq[q[s]+i])
{
q[e] = q[s]+i;
memcpy((void*)a[q[e]], (void*)a[q[s]], 201);
a[q[e]][i]++;
inq[q[e]] = inq[q[s]]+1;
e++;
}
}
s++;
}
for(i=g; i>0; i--) if (inq[i]) break;
printf("%d %d\n", i, inq[i]);
for(j=1;j<=200;j++) rep(k,a[i][j]) printf("%d\n", j);
getch();
return 0;
}
#endif