제출 #40481

#제출 시각아이디문제언어결과실행 시간메모리
40481WaschbarPalembang Bridges (APIO15_bridge)C++14
22 / 100
69 ms5096 KiB
#include <bits/stdc++.h>
#define st first
#define nd second
using namespace std;

const long long INF = 1e10;
const int MOD = 1e9+7;
const int MAXN = 30000;

long long n, k, ans, cnt;
vector < pair<int,int> > a;

int main() {

    ios_base::sync_with_stdio(false);
    cin.tie(0);

    //freopen("input.txt","r",stdin);
    //freopen("output.txt","w",stdout);

    cin >> k >> n;

    vector < long long > v, v1, v2;
    for(int i = 1; i <= n; i++) {
        long long x1, x2;
        char c1, c2;
        cin >> c1 >> x1 >> c2 >> x2;
        if(c1 == c2) ans += abs(x2-x1);
        else {
            v.push_back(x1);
            v.push_back(x2);
            v1.push_back(x1);
            v2.push_back(x2);
            cnt++;
        }
    }

    ans += cnt;
    sort(v.begin(),v.end());
    //for(int i = 0; i < v.size(); i++)
    //    cout << v[i] << " ";
    //cout << endl;

    if(k == 2) {
        v.push_back(INF);
        long long num = INF;
        for(int i = 0; i < v.size(); i++){
            for(int j = i+1; j < v.size(); j++){
                long long b1, b2;
                b1 = v[i]; b2 = v[j];
                if(b1 == b2) continue;
                long long sum = 0;
               // if(b1 == 2 && b2 == 6){
                for(int k = 0; k < v1.size(); k++)//{
                    sum += min(abs(b1-v1[k])+abs(b1-v2[k]),
                               abs(b2-v1[k])+abs(b2-v2[k]));
                    //cout << k<<" - "<< v1[k] << " " << v2[k] <<" : "<<sum << endl;
                    //}
               // }
                //cout << b1 << " " << b2 <<" - "<<sum << endl;
                num = min(num,sum);
            }
        }
        cout << ans+num;
        return 0;
    }

    if(v.size() > 1){
    int x = v[(v.size()+1)/2 - 1];

    for(int i = 0; i < v.size(); i++)
        ans += abs(x-v[i]);
    }

    cout << ans;
}

컴파일 시 표준 에러 (stderr) 메시지

bridge.cpp: In function 'int main()':
bridge.cpp:47:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for(int i = 0; i < v.size(); i++){
                          ^
bridge.cpp:48:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
             for(int j = i+1; j < v.size(); j++){
                                ^
bridge.cpp:54:34: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
                 for(int k = 0; k < v1.size(); k++)//{
                                  ^
bridge.cpp:71:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i = 0; i < v.size(); i++)
                      ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...