| 
 | 
вернуться в форумTLE(c++)? why do i get Time limit exceeded :(   #include <cstring> #include <cstdlib> #include <cstdio> using namespace std;   int main () {     char * pch;     char str[30005],str1[30005];     int number,i=0,j=0;     scanf("%d",&number);     while(i<number)     {     scanf("%s",str);     i+=strlen(str);     strcat(str1,str);     }     while(strstr(str1,"><"))     {         pch=strstr(str1,"><");         strncpy(pch,"<>",2);         j++;     }           printf("%d",j);   return 0; } Re: TLE(c++)? I used very similar code and got AC (though there is a better solution if I recall correctly). What I did is: - If you have <<< at left end or >>> at right and, you can ignore those - they will never change again. Thus, you can keep treack of the left and right endings, and only parse those, instead of going from 0 to n every time.   AC 0.625 Re: TLE(c++)? #include <iostream> using namespace std; int main() {     int n;     cin >> n;     char c;     int t = 0, ans = 0;     while (n--)     {         cin >> c;         if (c == '>')             ++t;         else             ans += t;     }     cout << ans << endl;     return 0; }  |  
  | 
|