Submission #895662

#TimeUsernameProblemLanguageResultExecution timeMemory
895662AndreyWiring (IOI17_wiring)C++14
0 / 100
17 ms2648 KiB
#include "wiring.h"
#include<bits/stdc++.h>
using namespace std;

long long min_total_length(std::vector<int> r, std::vector<int> b) {
    int n = r.size(),m = b.size();
    vector<int> haha(n+m+1);
    for(int i = 0; i < n; i++) {
        haha[r[i]] = 1;
    }
    vector<int> bruh(0);
    int p = 0;
    for(int i = 1; i <= n+m; i++) {
        if(i == 1 || haha[i] == haha[i-1]) {
            p++;
        }
        else {
            bruh.push_back(p);
            p = 1;
        }
    }
    bruh.push_back(p);
    vector<long long> ans(0);
    ans.push_back(bruh[0]);
    for(int i = 1; i < bruh.size()-1; i++) {
        if(bruh[i] == 1) {
            ans.push_back(1);
            ans.push_back(1);
        }
        else {
            if(bruh[i]/2 == ans[ans.size()-1] && (bruh[i]+1)/2 > ans[ans.size()-1]) {
                ans.push_back(bruh[i]/2);
                ans.push_back(bruh[i]/2+1);
            }
            else {
                ans.push_back((bruh[i]+1)/2);
                ans.push_back(bruh[i]/2);
            }
        }
    }
    ans.push_back(bruh[bruh.size()-1]);
    long long sb = 0;
    for(int i = 0; i < ans.size(); i++) {
        sb+=(ans[i]-1)*ans[i]/2;
    }
    for(int i = 0; i < ans.size(); i+=2) {
        sb+=max(ans[i],ans[i+1]);
    }
	return sb;
}

Compilation message (stderr)

wiring.cpp: In function 'long long int min_total_length(std::vector<int>, std::vector<int>)':
wiring.cpp:25:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   25 |     for(int i = 1; i < bruh.size()-1; i++) {
      |                    ~~^~~~~~~~~~~~~~~
wiring.cpp:43:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   43 |     for(int i = 0; i < ans.size(); i++) {
      |                    ~~^~~~~~~~~~~~
wiring.cpp:46:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 |     for(int i = 0; i < ans.size(); i+=2) {
      |                    ~~^~~~~~~~~~~~
#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...