Submission #1004689

# Submission time Handle Problem Language Result Execution time Memory
1004689 2024-06-21T12:36:25 Z zh_h Arranging Shoes (IOI19_shoes) C++17
10 / 100
1 ms 348 KB
#include <bits/stdc++.h>
#define lint long long int
#define pb push_back
using namespace std;

lint count_swaps(vector<int> s){
    vector<pair<int, int>> v;
    for(int i = 0; i < s.size(); i ++){
        if(s[i] < 0){v.pb({s[i], -i});}
        else{v.pb({s[i], i});}
        // if(s[i] > s[i-1]){
        //     if(s[i]+s[i-1] == 0){
        //         v.erase(v.begin()+i-1);
        //         v.erase(v.begin()+i);
        //     }
        // }
    }

    lint ans = 0;

    sort(v.begin(), v.end());

    // for(auto i : v){cout << i.first << " " << i.second << endl;}

    //* 0 1 2 3 4  5 6 7 8 9
    for(int i = 0; i < s.size()/2; i ++){
        // cout << ans;
        int temp = v[(s.size()/2)+i].second + v[(s.size()/2)-1-i].second;
        if(temp > 0){
            ans += temp-1;
        }
        else ans+=(0-temp);
    }
    // cout << endl << ans << endl;
    
    return ans;
}

// int main(){
//     lint temp;
//     // temp = count_swaps({2, 1, -1, -2});
//     // temp = count_swaps({1, -1, 6, 4, -3, 2, 5, -6, -5, -4, -2, 3, -1, 2, -2, 1});
//     temp = count_swaps({-2, 2, 2, -2, -2, 2});
//     cout << temp;

// }

// 6, ., ., ., -6 
// 2, ., ., ., 7

// -6, -7
// 6, 2

// so first (7-2)-1
// then +1 to switch place

// -3, ., ., ., ., 3
// 4, ., ., ., ., 11

// -3 -4
// 3 11

// (11-4)-1

// so if sum > 0, juz -1
// else if sum < 0, juz add negative sign

Compilation message

shoes.cpp: In function 'long long int count_swaps(std::vector<int>)':
shoes.cpp:8:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    8 |     for(int i = 0; i < s.size(); i ++){
      |                    ~~^~~~~~~~~~
shoes.cpp:26:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   26 |     for(int i = 0; i < s.size()/2; i ++){
      |                    ~~^~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 344 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 344 KB Output is correct
3 Correct 1 ms 344 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Incorrect 0 ms 348 KB Output isn't correct
8 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 344 KB Output is correct
3 Incorrect 0 ms 348 KB Output isn't correct
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Incorrect 0 ms 348 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 344 KB Output is correct
3 Correct 1 ms 344 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Incorrect 0 ms 348 KB Output isn't correct
8 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 344 KB Output is correct
3 Correct 1 ms 344 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Incorrect 0 ms 348 KB Output isn't correct
8 Halted 0 ms 0 KB -