J'étais en train de résoudre le problème https://www.spoj.pl/problems/ACPC11A/
et voici mon code :
#include<iostream>
#include<cstdio>
#include<string>
#include<vector>
using namespace std;
int main()
{
int tc,i,n;
scanf("%d",&tc);
while(tc--)
{
vector<string> v1,v2;
string str,w;
scanf("%d",&n);
int flag=0;
for(i=0;i<n;i++)
{
cin>>str;
if(str[0]!='#')
{
flag=1;
w=str;
}
else if(flag==0)
{
v1.push_back(str);
}
else
v2.push_back(str);
}
//print v2-->w-->v1
for(i=0;i<v2.size();i++)
{
cout<<v2[i]<<" ";
}
if(w!="")
cout<<w<<" ";
for(i=0;i<v1.size()-1;i++)
cout<<v1[i]<<" ";
cout<<v1[v1.size()-1]<<endl;
v1.clear();v2.clear();str.clear();w.clear();
}
return 0;
}
J'obtiens la sortie correcte pour l'exemple de cas de test... mais lors de la soumission de mon code, il y a une erreur de segmentation.
Ma logique est simple j'ai pris 2 vecteurs 1 pour stocker les mots avant l'arrivée d'un mot anglais (v1) et l'autre pour stocker les mondes après l'arrivée d'un mot anglais (v2) ensuite j'imprime le contenu de v2 suivi du mot puis du contenu de v1.
aidez-moi à comprendre pourquoi ce code donne une erreur de segmentation.