# Rispetta i versi - execution timed out

**URL:** <https://forum.olinfo.it/t/rispetta-i-versi-execution-timed-out/5017>\
**Category:** Aiuto\
**Created:** [18 Febbraio 2018, 9:48am UTC](https://forum.olinfo.it/t/rispetta-i-versi-execution-timed-out/5017 "2018-02-18T09:48:10Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![marco.rocchi](https://forum.olinfo.it/letter_avatar_proxy/v4/letter/m/f14d63/32.png) [@marco.rocchi](https://forum.olinfo.it/u/marco.rocchi)\
**Post date:** [18 Febbraio 2018, 9:48am UTC](https://forum.olinfo.it/t/rispetta-i-versi-execution-timed-out/5017/1 "2018-02-18T09:48:11Z")

</div>

Qualcuno mi sa consigliare come migliorare l’algoritmo?  
faccio 90/100, l’ultimo testcase da errore Execution timed out.

Grazie.

```
#include<stdio.h>
#include<stdlib.h>

int n;
char versi[100000];
int valori[100001];

void scambia(int n, int m)
{
    int temp=valori[n];
    valori[n]=valori[m];
    valori[m]=temp;
}

int vero(int a, int b)
{
    if(versi[a]=='>')
        if(valori[a]>valori[b])
            return 1;
        else
            return 0;
    else
        if(valori[a]<valori[b])
            return 1;
        else
            return 0;
}

main()
{
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
    
    scanf("%d", &n);
    int i;
    scanf("%c",&versi[0]);
    for(i=0; i<n-1; i++)
        scanf("%c", &versi[i]);
    
    if(versi[0]=='>')
        for(i=0; i<n; i++)
            valori[i]=n-i-1;
    else
        for(i=0; i<n; i++)
            valori[i]=i;

genera: i=0;
        while(i+1<n && vero(i, i+1))
            i++;
        if(i+1<n)
        {
            scambia(i, i+1);
            goto genera;
        }
    for(i=0; i<n-1; i++)
    {
        printf("%d ",valori[i]+1);
    }
    printf("%d", valori[n-1]+1);
}
```

---

<div class="post-metadata">

**Author:** ![frakkiobello](https://forum.olinfo.it/user_avatar/forum.olinfo.it/frakkiobello/32/2768_2.png) [@frakkiobello](https://forum.olinfo.it/u/frakkiobello)\
**Post date:** [18 Febbraio 2018, 11:29am UTC](https://forum.olinfo.it/t/rispetta-i-versi-execution-timed-out/5017/2 "2018-02-18T11:29:33Z")

</div>

Il trucco sta nel inserirli già nell’ ordine corretto.
