제출 #834953

#제출 시각아이디문제언어결과실행 시간메모리
834953vjudge1Palembang Bridges (APIO15_bridge)C++17
0 / 100
1 ms212 KiB
#include<bits/stdc++.h>
#define ll long long
#define fi first
#define se second
using namespace std;
const int nmax = 1e5+5;
struct abt {
    char har;
    int h;
    char oar;
    int o;
};
abt per[nmax];
int main() {
    int K,N;
    int dist = 0;
    int ujkir = INT_MAX;
    int ujkan = INT_MIN;
    cin >> K >> N;
    vector<pair<int,int>>jar;
    for(int i=1; i<=N; i++) {
        cin >> per[i].har >> per[i].h >> per[i].oar >> per[i].o;
        //ujkir = min(min(per[i].h, per[i].o), ujkir);
        //ujkan = max(max(per[i].h, per[i].o), ujkan);
        if(per[i].har == per[i].oar) {
            dist += abs(per[i].h - per[i].o);
        } else {
            int sem = abs(per[i].h - per[i].o) + 1;
            jar.push_back({sem, i});
        }
    }
    int bridge;
    int terd, sums;
    int dismin=INT_MAX;
    for(int i=0; i<jar.size(); i++) {
        bridge = per[jar[i].se].o;
        sums = 0;
        for(int j=0; j<jar.size(); j++) {
            sums+=jar[j].fi;
            if(bridge < min(per[jar[j].se].o, per[jar[j].se].h)) {
                terd = min(per[jar[j].se].o, per[jar[j].se].h);
                sums += (2*abs(terd - bridge));
            } else
            if(bridge > max(per[jar[j].se].o, per[jar[j].fi].h)) {
                terd = max(per[jar[j].se].o, per[jar[j].fi].h);
                sums += (2*abs(terd - bridge));
            }
        }
        dismin = min(dismin, sums);

        bridge = per[jar[i].se].h;
        sums = 0;
        for(int j=0; j<jar.size(); j++) {
            sums+=jar[j].fi;
            if(bridge < min(per[jar[j].se].o, per[jar[j].se].h)) {
                terd = min(per[jar[j].se].o, per[jar[j].se].h);
                sums += (2*abs(terd - bridge));
            } else
            if(bridge > max(per[jar[j].se].o, per[jar[j].fi].h)) {
                terd = max(per[jar[j].se].o, per[jar[j].fi].h);
                sums += (2*abs(terd - bridge));
            }
        }
        dismin = min(dismin, sums);
    }
    cout << dist+dismin << endl;
    return 0;
}

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

bridge.cpp: In function 'int main()':
bridge.cpp:35:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   35 |     for(int i=0; i<jar.size(); i++) {
      |                  ~^~~~~~~~~~~
bridge.cpp:38:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   38 |         for(int j=0; j<jar.size(); j++) {
      |                      ~^~~~~~~~~~~
bridge.cpp:53:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   53 |         for(int j=0; j<jar.size(); j++) {
      |                      ~^~~~~~~~~~~
bridge.cpp:17:9: warning: unused variable 'ujkir' [-Wunused-variable]
   17 |     int ujkir = INT_MAX;
      |         ^~~~~
bridge.cpp:18:9: warning: unused variable 'ujkan' [-Wunused-variable]
   18 |     int ujkan = INT_MIN;
      |         ^~~~~
#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...