在删除矢量显示代码块c ++时回答更改

时间:2018-06-01 17:50:45

标签: c++

解决codeforces problem

我写了这个c ++代码,在显示结果时遇到了一个大问题:事实上,如果我添加这段代码:

cout<<"t2simplifier"<<endl;
aff(t2simplifier);
cout<<endl;
aff(t2primsimplifier);
cout<<endl;

结果是正确的 否则就错了 代码:

#include <bits/stdc++.h>
using namespace std;

void aff (vector<int> v)
{
    for (int i=0;i<v.size();i++)
        cout<<v[i]<<"|";
}

int main()
{

    int n;

    cin>>n;

    int t1[2][n];

    vector <int> t2 ;
    vector <int> t2prim ;//flous

    vector <int> t2simplifier ;
    vector <int> t2primsimplifier  ;//flous


    vector <int> t3prim ;//flous



    for(int i=0;i<n;i++)
    cin>>t1[0][i];

    for(int i=0;i<n;i++)
    cin>>t1[1][i];

    for (int i = 0;i<n;i++)
        for (int j = i+1 ;j<n ;j++)
    {
        if(t1[0][i]<t1[0][j])
         {

             t2.push_back(j);
             t2prim.push_back(t1[1][i]+t1[1][j]);
         }
    }
//    cout<<"t2"<<endl;
//    aff(t2);
//    cout<<endl;
//    aff(t2prim);
//    cout<<endl;




    //pour simplifier t2  et t2prim
    int minn;
    for (int i = 1;i<n;i++)
    {
        minn==1000000000;

        for (int j = 0 ;j<n ;j++)
    {
        if((t2[j]==i)&&(t2prim[j]<minn))
         {
            minn=t2prim[j];
         }
    }
             t2simplifier.push_back(i);
             t2primsimplifier.push_back(minn);
 }


    cout<<"t2simplifier"<<endl;
    aff(t2simplifier);
    cout<<endl;
    aff(t2primsimplifier);
    cout<<endl;


    for (int i = 0;i<t2simplifier.size();i++)
        for (int j = t2simplifier[i] ;j<n ;j++)
    {
        if(t1[0][t2simplifier[i]]<t1[0][j])
         {

             t3prim.push_back(t2primsimplifier[i]+t1[1][j]);
         }
    }
  //  cout<<"t3prim";
   // aff(t3prim);

if (t3prim.size()==0)
        cout<<-1;
    else
    {
    //talla3 min
    int k = t3prim[0];
    for (int i = 1;i<t3prim.size();i++)
    {
     if(k>t3prim[i])
            k=t3prim[i];

    }
// k is the result
    cout << k ;
    }

    return 0;
}

输入:

5
2 4 5 4 10
40 30 20 10 40

部分代码的结果是:

t2simplifier
1|2|3|4|
70|50|50|50|
90

但是当我们删除这段代码时(向量显示)  结果将是错误的:

24

1 个答案:

答案 0 :(得分:0)

感谢Mr“FrançoisAndrieux”

在代码中有输入错误

minn == 1000000000;行正在执行比较,应为minn = 1000000000;

此错误导致从未初始化的变量读取时出现未定义的行为。