# Codice che va in execution timed out con gli esempi

**URL:** <https://forum.olinfo.it/t/codice-che-va-in-execution-timed-out-con-gli-esempi/7592>\
**Category:** Aiuto\
**Created:** [20 Luglio 2022, 9:45am UTC](https://forum.olinfo.it/t/codice-che-va-in-execution-timed-out-con-gli-esempi/7592 "2022-07-20T09:45:30Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![Simone04](https://forum.olinfo.it/user_avatar/forum.olinfo.it/simone04/32/1274_2.png) [@Simone04](https://forum.olinfo.it/u/Simone04)\
**Post date:** [20 Luglio 2022, 9:45am UTC](https://forum.olinfo.it/t/codice-che-va-in-execution-timed-out-con-gli-esempi/7592/1 "2022-07-20T09:45:31Z")

</div>

```auto
#include <iostream>
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdlib.h>

using namespace std;

class FileReader {
	private:
	FileReader(const FileReader&fr){}
	int maxBufferSize,bufferSize,bufferPointer;int fileNo;char*buffer;
	void loadBuffer(){bufferSize=read(fileNo,buffer,maxBufferSize);bufferPointer=0;}
	inline char nextChar(){if(bufferPointer>=bufferSize)loadBuffer();return buffer[bufferPointer++];}
	bool skipSpaces(){char c;while(((c=nextChar())==' '||c=='\n'||c=='\t')&&c!='\0');if(c=='\0')return 0;bufferPointer--;return 1;}
	public:
	FileReader(const char*_name,int _bufferSize=150000){buffer=(char*)malloc(_bufferSize);fileNo=open(_name,O_RDONLY);maxBufferSize=_bufferSize;loadBuffer();}
	FileReader(int _fileNo,int _bufferSize=150000){buffer=(char*)malloc(_bufferSize);fileNo=_fileNo;maxBufferSize=_bufferSize;loadBuffer();}
	~FileReader(){free(buffer);close(fileNo);}
	int readInt(){return(int)readLongLong();}
	long long readLongLong(){long long n=0;int mul=1;char c;if(!skipSpaces())abort();c=nextChar();if(c=='+'||c=='-')mul=(c=='+')?1:-1;else bufferPointer--;do{c=nextChar();if(c>='0'&&c<='9')n=n*10+(c-'0');}while(c>='0'&&c<='9');return n*mul;}
	double readDouble(){double n=0;int mul=1,i=0,dotpos=0;char c;if(!skipSpaces())abort();c=nextChar();if(c=='+'||c=='-')mul=(c=='+')?1:-1;else bufferPointer--;do{i++;c=nextChar();if(c>='0'&&c<='9')n=n*10.0+(c-'0');if(c=='.')dotpos=i;}while((c>='0'&&c<= '9')||c=='.');if(dotpos>0)for(;dotpos<i-1;dotpos++)n/=10.0;return n*mul;}
	int readString(char*str){if(!skipSpaces())return str[0]=0;char c;int l=0;do{c=nextChar();str[l++]=c;}while(c!=' '&&c!='\n'&&c!='\t'&&c!='\0');str[--l]='\0';return l;}
	char readChar(){if(!skipSpaces())return'\0';return nextChar();}
};

int main()
{
    FileReader fr("input.txt");
    long long n = fr.readLongLong();
    long long d = fr.readLongLong();
    long long A[n];
    for(long long i=0;i<n;i++)
    {
        A[i] = fr.readLongLong();
    }

    int I, J, co = 0;
    for(I=n-1;I>=0;I--)
        {
            for(J=I-1;J>=0;J--)
            {
                if(A[I]-A[J]>=d)
                {
                    I--;
                    J = I-1;
                }
                if(A[I]-A[J]<d)
                {
                    co++;
                }

            }

        }
        cout << co << endl;

}
codice che si inceppa

```

---

<div class="post-metadata">

**Author:** ![MyK\_00L](https://forum.olinfo.it/user_avatar/forum.olinfo.it/myk_00l/32/3000_2.png) [@MyK\_00L](https://forum.olinfo.it/u/MyK_00L)\
**Post date:** [20 Luglio 2022, 11:04am UTC](https://forum.olinfo.it/t/codice-che-va-in-execution-timed-out-con-gli-esempi/7592/2 "2022-07-20T11:04:30Z")

</div>

hai simboli strani nel codice, probabilmente hai sbagliato a copy-pastarlo… Senza provare a compilarlo in locale non ti saprei dire.

---

<div class="post-metadata">

**Author:** ![Simone04](https://forum.olinfo.it/user_avatar/forum.olinfo.it/simone04/32/1274_2.png) [@Simone04](https://forum.olinfo.it/u/Simone04)\
**Post date:** [20 Luglio 2022, 11:55am UTC](https://forum.olinfo.it/t/codice-che-va-in-execution-timed-out-con-gli-esempi/7592/3 "2022-07-20T11:55:27Z")

</div>

Si il codice scritto sul forum non lo copia bene… comunque non so quale sia il problema perchè sugli esempi si inceppa, subtask 2 ultra veloce, subtask 3 lo stesso e si inceppa sulla quarta. In pratica non riesce a prendere l’ultimo numero dal file e il programma si inceppa. Ho compilato su visual studio con g++ e funziona, su codeblocks e replit non va.

---

<div class="post-metadata">

**Author:** ![MyK\_00L](https://forum.olinfo.it/user_avatar/forum.olinfo.it/myk_00l/32/3000_2.png) [@MyK\_00L](https://forum.olinfo.it/u/MyK_00L)\
**Post date:** [21 Luglio 2022, 11:25am UTC](https://forum.olinfo.it/t/codice-che-va-in-execution-timed-out-con-gli-esempi/7592/4 "2022-07-21T11:25:45Z")

</div>

A me con clang compila, che problema e’ btw?

---

<div class="post-metadata">

**Author:** ![Simone04](https://forum.olinfo.it/user_avatar/forum.olinfo.it/simone04/32/1274_2.png) [@Simone04](https://forum.olinfo.it/u/Simone04)\
**Post date:** [21 Luglio 2022, 11:42am UTC](https://forum.olinfo.it/t/codice-che-va-in-execution-timed-out-con-gli-esempi/7592/5 "2022-07-21T11:42:42Z")

</div>

è do not gather, la subtask 3 la fà in massimo 0.015 e l’esempio va in execution timed out

---

<div class="post-metadata">

**Author:** ![Simone04](https://forum.olinfo.it/user_avatar/forum.olinfo.it/simone04/32/1274_2.png) [@Simone04](https://forum.olinfo.it/u/Simone04)\
**Post date:** [21 Luglio 2022, 11:46am UTC](https://forum.olinfo.it/t/codice-che-va-in-execution-timed-out-con-gli-esempi/7592/6 "2022-07-21T11:46:16Z")

</div>

Il problema non è tanto il compilare (infatti anche a me compila) ma il programma arriva a prendere l’ultimo numero da file e non va più continua a girare senza fare nulla

---

<div class="post-metadata">

**Author:** ![MyK\_00L](https://forum.olinfo.it/user_avatar/forum.olinfo.it/myk_00l/32/3000_2.png) [@MyK\_00L](https://forum.olinfo.it/u/MyK_00L)\
**Post date:** [23 Luglio 2022, 10:58am UTC](https://forum.olinfo.it/t/codice-che-va-in-execution-timed-out-con-gli-esempi/7592/7 "2022-07-23T10:58:48Z")

</div>

Il problema e` il file reader che stai usando che si bugga se l’input non finisce con whitespace.  
La differenza nei subtask immagino sia perche’ sono generati in modo diverso, alcuni fatti bene con la newline alla fine del file e altri senza.

---

<div class="post-metadata">

**Author:** ![Simone04](https://forum.olinfo.it/user_avatar/forum.olinfo.it/simone04/32/1274_2.png) [@Simone04](https://forum.olinfo.it/u/Simone04)\
**Post date:** [23 Luglio 2022, 11:29am UTC](https://forum.olinfo.it/t/codice-che-va-in-execution-timed-out-con-gli-esempi/7592/8 "2022-07-23T11:29:37Z")

</div>

Ok grazie proverò a cambiare il codice
