Блог пользователя AKruglyak

Автор AKruglyak, 13 лет назад, По-русски

Не могу понять, почему возникает TIME_LIMIT_EXCEEDED на 10 тесте 161A - Оденьте их скорее!. Вот код:

#include <iostream>
using namespace std;
int main(){
 long long mas=1000000;
 long long n,m,x,y, want[mas], kevlar[mas], otv[mas],otv2[mas];
    cin>>n>>m>>x>>y;
    long long count=0;
    for(long long i=0;i<n;i++)
     cin>>want[i];
    for(long long i=0;i<m;i++)
     cin>>kevlar[i]; 
   for(long long i=0;i<n;i++)
    for(long long k=0;k<m;k++)
     if(kevlar[k]>=want[i]-x and  kevlar[k]<=want[i]+y and kevlar[k]!=0){
      otv[count]=i+1;
      otv2[count]=k+1;
      count++;
      kevlar[k]=0;
      break;
      }
    cout<<count<<endl;  
    for(long long i=0;i<count;i++)
     cout<<otv[i]<<' '<<otv2[i]<<endl;
    }
  • Проголосовать: нравится
  • -29
  • Проголосовать: не нравится

»
13 лет назад, # |
  Проголосовать: нравится +37 Проголосовать: не нравится

Ну может потому что сложность O(n*m)?

»
13 лет назад, # |
Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

Можно попробовать заменить cin/cout на scanf/printf.

Но это не поможет.

  • »
    »
    13 лет назад, # ^ |
    Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

    Твой ответ очень сочетается с твоим аватаром, в стиле Advice Dog (lurkmore)
    Повеселил твой ответ :)