ошибка выполнения на одном из тестов

263
02 января 2018, 15:40

Помогите, пожалуйста! На одном из 14 тестов происходит ошибка выполнения программы. В чем может быть проблема? Задача: После затянувшегося совещания директор фирмы решил заказать такси,чтобы развезти сотрудников по домам. Он заказал N машин —ровно столько, сколь у него сотрудников.Однако когда они подъехали, оказалось, что у каждого водителя такси свой тариф за 1 километр.

Директор знает, какому сотруднику сколько километров от работы до дома (к сожалению, все сотрудники живут в разных направлениях, поэтому нельзя отправить двух сотрудников на одной машине). Теперь директор хочет определить, сколько придется заплатить за перевозку всех сотрудников. Естественно, директор хочет заплатить как можно меньшую сумму. Вот ссылка на условие http://informatics.mccme.ru/mod/statements/view3.php?chapterid=111162#1

#include <iostream>
#include <cstring>
int i,k,a[104],b[104],x,n2,n,sum;
char  s1[104],s2[104];
using namespace std;
int main() {
    cin.getline(s1,100,'\n'); 
    cin.getline(s2,100,'\n');
    for (int i=0; i<strlen(s1); ++i) 
    {   
        if (isdigit(s1[i])) 
        { 
            x=x*10+int(s1[i])-int('0'); 
        } 
        if ((s1[i]==' ') or (i==strlen(s1)-1)) 
        { 
            ++n; 
            a[n]=x; 
            x=0; 
            for (int j=1; j<=n; j++) 
                if (a[n]<a[j]) 
                    swap(a[n],a[j]); 
        } 
    } 
    n2=0; 
    for (int i=0; i<strlen(s2); ++i) 
    { 
        if (isdigit(s2[i])) 
    { 
        x=x*10+int(s2[i])-int('0'); 
    } 
        if ((s2[i]==' ') or (i==strlen(s2)-1)) 
    { 
        ++n2; 
        b[n2]=x; 
        x=0; 
        for (int j=1; j<=n2; j++) 
        if (b[n2]>b[j]) 
        swap(b[n2],b[j]); 
    } 
    } 
    sum=0; 
    for (int i=1; i<=n; i++) 
        sum=sum+a[i]*b[i]; 
    cout<<sum;  
    return 0;
}
Answer 1

Лично я думаю, что нужен вот такой код:

#include <vector>
#include <iostream>
#include <numeric>
#include <functional>
#include <algorithm>
using namespace std;

int main(int argc, const char * argv[])
{
    unsigned int N;
    vector<int> total, dist, cost;
    while(cin >> N) total.push_back(N);
    auto mid = total.begin()+total.size()/2;
    copy(total.begin(),mid,back_inserter(dist));
    copy(mid,total.end(),back_inserter(cost));
    sort(dist.begin(),dist.end(),greater<int>());
    sort(cost.begin(),cost.end());
    cout << inner_product(dist.begin(),dist.end(),cost.begin(),0) << endl;
}

Но без точного ТЗ результат всегда ХЗ!

Как спросили - такой и ответ...

READ ALSO
Копирование изображения Java

Копирование изображения Java

Каждый раз когда я добавляю картинку она добавляется в конец текста, потому что я копирую весь текст и просто добавляю картинкуМне нужно...

228
Не работает Design в Android Studio

Не работает Design в Android Studio

Доброго Вам времени сутокС наступающим всех

400