Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: inundatie  (Citit de 1107 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
mihai.plesa
Client obisnuit
**

Karma: 0
Deconectat Deconectat

Mesaje: 74



Vezi Profilul
« : Decembrie 28, 2011, 11:19:35 »

Buna ziua !
Am dat peste problema http://infoarena.ro/problema/inundatie
Am facut urmatorul program :
Cod:
#include<cstdio>
using namespace std;
long int a[90001],i,j,s,d,ok=0,m,x,n,m1,q,aux,s1;
int main()
{FILE*f=fopen("inundatie.in","r");
FILE*g=fopen("inundatie.out","w");
fscanf(f,"%ld %ld",&n,&m1);
n=n*m1;
for(i=1; i<=n; i++)
fscanf(f,"%ld",&a[i]);
for(i=1; i<=n; i++)
for(j=i+1; j<=n; j++)
if(a[i]>a[j]){
aux=a[i];
a[i]=a[j];
a[j]=aux;
}
fscanf(f,"%ld",&q);
for(i=1; i<=q; i++){
s1=0;
ok=0;
fscanf(f,"%ld",&x);
x--;
s=1;
d=n;
while(ok==0){
m=(s+d)/2;
if(x>a[m])
s=m+1;
if(x<a[m])
d=m-1;
if((x>=a[m] && x<a[m+1]) || x==a[m])
ok=1;
}
for(j=1; j<=m; j++)
s1=s1+a[j];
s1=s1+(x*(n-m));
fprintf(g,"%ld\n",s1);
}
}
pe 9 din 10 teste este depasita limita de timp. Ma puteti ajuta va rog?
Multumesc!
Memorat
pauldb
Nu mai tace
*****

Karma: 821
Deconectat Deconectat

Mesaje: 1.901



Vezi Profilul
« Răspunde #1 : Decembrie 28, 2011, 11:42:22 »

Foloseste topicul destinat problemei!
Memorat

Am zis Mr. Green
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines