aceasa este programul facut de mine
#include<fstream>
using namespace std;
ifstream fin(„numere7.in”);
ofstream fout(„numere7.out”);
int n,v[250000],aux,g,i,ok=1;
int main()
{
fin>>n;
g=n*n;
for(i=1;i<=g;i++)
fin>>v;
while(ok==1)
{
ok=0;
for(i=1;i<g;i++)
if(v>v[i+1])
{
aux=v;
v=v[i+1];
v[i+1]=aux;
ok=1;
}
}
for(i=1;i<g;i++)
if(v+1!=v[i+1] && v!=0)
{
fout<<v+1<<” „<<v[i+1]-1;
break;
}
fout<<‘\n’;
fout.close();
return 0;
}
am luat doar 30 de puncte
Test Timp Mesaj evaluator Punctaj
0 0 Okay! 10
Total exemple 10
1 0 Okay! 10
2 0 Okay! 10
3 0 Okay! 10
4 0 Wrong answer in: numere7.out 0 (cazul in care numere sterse incep de la 1, stiu sa remediez cazul, dar nu are rost pentru ca programul este ineficient)
5 0.101 Time limit exceeded! 0
6 0.101 Time limit exceeded! 0
7 0.101 Time limit exceeded! 0
8 0.101 Time limit exceeded! 0
9 0.101 Time limit exceeded! 0
10 0.101 Time limit exceeded! 0
Total evaluare 30
ma poate ajuta cineva cu o sursa/idee eficienta?
m-am gandit si la alta metoda
Pai si daca ar fi sa alegi ce ai alege? o idee eficienta sau o sursa? ca sa stiu ce-ti dau😀
idee
Sa zicem ca insumezi toate numerele citite (in variabila s) iar daca e 0 nr citit il contorizezi in r. Pui in variabila t de exemplu suma maxima posibila daca ai nr de la 1 la n^2 scazand s, adica t=n^2 * (n^2+1)/2 – s. In u pastrezi r*(r-1)/2. In x ai (t-u)/r si afisezi x si x+r-1. Cam asta-i algoritmul dupa care m-am ghidat eu. Am luat 100 cu el pe infoarena apare si acolo problema sub numele de numere 5. Problema s-a dat la OJI 2005 clasa a 9-a.
mersi
#include<fstream>
using namespace std;
ifstream fin(„numere7.in”);
ofstream fout(„numere7.out”);
int n,g,t,x,r,s,i,u;
int main()
{
fin>>n;
g=n*n;
for(i=1;i<=g;i++)
{
fin>>x;
s=s+x;
if(x==0)
r++;
}
t=g*(g+1)/2-s;
u=r*(r-1)/2;
x=(t-u)/r;
fout<<x<<” „<<x+r-1;
fout.close();
}
programul facut dupa ideea dv
Test Timp Mesaj evaluator Punctaj
0 0 Okay! 10
Total exemple 10
1 0 Okay! 10
2 0 Okay! 10
3 0 Okay! 10
4 0 Okay! 10
5 0.101 Time limit exceeded! 0
6 0.101 Time limit exceeded! 0
7 0.101 Time limit exceeded! 0
8 0.101 Time limit exceeded! 0
9 0.101 Time limit exceeded! 0
10 0.101 Time limit exceeded! 0
Total evaluare 40
se pare ca exemplele de pe campion sunt putin mai „grele”.
mai aveti alte idei?
Foloseste scrierea si citirea din stdio nu din stream-uri ajuta sa stii! Astept rezultatele… mentionez ca n-am pus-o pe campion!
nu stiu sa citesc din stdio, ati putea posta sursa dv sau sa trimiteti problema pe campion si sa imi spuneti rezultatele?
Am incercat sa trimit si eu pe campion am luat 50 de pct. Ca sa iei 100 de pct tb sa citesti liniile din matrice ca niste string-uri… apoi sa-l desparti in int-uri… doar asha economisim timp.