De ce nu merge acest program pe pbinfo la problmea #3734?
#include
#define MAXNRPIL 100
#define MAXNUME 100
char nume[MAXNRPIL][MAXNUME+1];
int timppil[MAXNRPIL];
int main( ) {
FILE *fin, *fout;
int cer, maxture, ture, nrpil, turk, min, sec, t, i, j, mint, maxtk, pil, pilk, cat, rest, u, max, p;
char aux;
fin = fopen( "formula1.in", "r" );
fscanf( fin, "%d%d%d%d%d", &cer, &maxture, &ture, &nrpil, &turk );
maxtk = -1;
mint = 30 * 60 + 1;
cat = maxture / ture;
rest = maxture % ture;
for ( i = 0; i < nrpil; i++ ) {
fgetc( fin );
j = 0;
nume[i][j] = fgetc( fin );
while ( nume[i][j] != '\n' ) {
nume[i][++j] = fgetc( fin );
}
for ( j = 0; j < ture; j++ ) {
fscanf( fin, "%d.%d", &min, &sec );
// Transform in secunde
t = min * 60 + sec;
switch ( cer ) {
case 1:
if ( t < mint ) {
mint = t;
pil = i;
}
break;
case 2:
if ( j + 1 == turk && t > maxtk ) {
maxtk = t;
pilk = i;
}
break;
case 3:
timppil[i] += j < rest ? t * ( cat + 1 ) : t * cat;
break;
}
}
}
fclose( fin );
fout = fopen( "formula1.out", "w" );
switch ( cer ) {
case 1:
i = 0;
while ( nume[pil][i] != '\n' ) {
fputc( nume[pil][i++], fout );
}
break;
case 2:
i = 0;
while ( nume[pilk][i] != '\n' ) {
fputc( nume[pilk][i++], fout );
}
break;
case 3:
// Ordonez timpii pilotilor cu select sort
for ( u = nrpil - 1; u > 0; u-- ) {
max = timppil[0];
p = 0;
for ( i = 1; i <= u; i++ ) {
if ( timppil[i] > max ) {
max = timppil[i];
p = i;
} else if ( timppil[i] == max ) {
// Ordonez lexicografic
j = 0;
while ( nume[i][j] == nume[p][j] && j < MAXNUME + 1 ) {
j++;
}
if ( nume[i][j] > nume[p][j] ) {
max = timppil[i];
p = i;
}
}
}
timppil[p] = timppil[u];
timppil[u] = max;
// Interschimb numele pilotilor
for ( i = 0; i < MAXNUME + 1; i++ ) {
aux = nume[p][i];
nume[p][i] = nume[u][i];
nume[u][i] = aux;
}
}
for ( i = 0; i < nrpil; i++ ) {\
fprintf( fout, "%d. ", i + 1 );
j = 0;
while ( nume[i][j] != '\n' ) {
fputc( nume[i][j++], fout );
}
fputc( '\n', fout );
}
break;
}
fclose( fout );
return 0;
}
VxF:
Sigur e rezolvarea pentru 3734?
Răspunsuri la întrebare
Răspuns de
1
#include<iostream>
#include<fstream>
#include<cmath>
using namespace std;
int main()
{
ifstream cin ("formula1.in");
ofstream cout ("formula1.out");
long long c, k, n;
cin >> c >> k >> n;
if (c == 1)
cout << (k*2-1)*(k*2-1);
else
{
n = n*2 - 1; c = 0;
for (long long i=3; i<=n; i+=2)
c += i*i/2;
c += c+1;
c = sqrt(c);
if (c%2 == 0)
c--;
cout << c*c;
}
return 0;
}
Alte întrebări interesante
Matematică,
8 ani în urmă
Engleza,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
9 ani în urmă
Engleza,
9 ani în urmă