| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 1291895 | lukaye_19 | Arranging Shoes (IOI19_shoes) | C++20 | 0 ms | 0 KiB |
#include <bits/stdc++.h>
using namespace std;
long long count_swaps(vector<long long>shoes)
{
long long n = shoes.size() / 2;
bool samesize = true;
bool leftrightshoes = true;
for (long long i = 0; i < n * 2; i++)
{
long long a = shoes[i];
if (i != 0)
{
if (a + shoes[i - 1] == 0 || a + shoes[i - 1] == a * 2) samesize = false;
}
if ((i <= n - 1 && a > 0) || (i > n - 1 && i <= n * 2 - 1 && a < 0)) leftrightshoes = false;
shoes[i] = a;
}
if (n == 1)
{
if (shoes[0] > shoes[1])
{
return 1;
}
else
{
return 0;
}
}
else if (samesize)
{
long long answer = 0;
for (long long i = 0; i < n * 2; i += 2)
if (i % 2 == 0 && shoes[i] > 0)
{
answer++;
}
}
return answer;
}
else if (leftrightshoes)
{
long long answer = 0;
for (long long i = 0; i < n; i++)
{
answer += i;
}
return answer;
}
return 0;
}
