이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
/**
▄█▀ ▀█▀ ▄▀▄ █▀ █▄█▄█ ▄▀▄ █▀ ▄█▀
<⇋⇋⇋⋛∰≓⊂(⌒,_ゝ⌒)⊃≓∰⋛⇋⇋⇋>
♔♕♖♗♘♙ ☜❷☞✪ ィℋ६ ≈ ᗫẵℜℵĬŊĞ ✪☜❷☞ ♚♛♜♝♞♟
♔♕♖♗♘♙ ♚♛♜♝♞♟
˙·٠•●♥ Ƹ̵̡Ӝ̵̨̄Ʒ ♥●•٠·˙
1 5
B 0 A 4
B 1 B 3
A 5 B 7
B 2 A 6
B 1 A 7
**/
#include <iostream>
#include <cstdio>
#include <vector>
#include <algorithm>
#include <iomanip>
#include <time.h>
#include <map>
#include <deque>
#include <string>
#include <set>
#include <math.h>
#define sz(s) s.size()
#define pb push_back
#define fr first
#define sc second
#define mk make_pair
#define int long long
#define all(s) s.begin(), s.end()
using namespace std;
const int N = 1e6 + 5;
const int inf = 1e9 + 7;
int n, k, q, pos1, pos2, sumx, sumn, ans, sum, j;
char t1, t2;
double cnt;
inline void get()
{
cin >> t1;
cin >> pos1;
cin >> t2;
cin >> pos2;
}
vector < pair < int, int > > v;
main()
{
cin >> k >> q;
n = q;
while( n-- )
{
get();
if( t1 == t2 )
{
j += abs( pos1 - pos2 );
continue;
}
cnt++;
sumx += max( pos1, pos2 );
sumn += min( pos1, pos2 );
v.pb( mk( min( pos1, pos2 ), max( pos1, pos2 ) ) );
}
int pos = ceil( ( sumx + sumn ) * 1.0 / cnt / 2.0 );
int pas = floor( ( sumx + sumn ) * 1.0 / cnt / 2.0 );
for( auto x : v )
{
sum += abs( pos - x.fr ) + abs( pos - x.sc );
ans += abs( pas - x.fr ) + abs( pas - x.sc );
}
cout << min( ans, sum ) + j + cnt;
}
컴파일 시 표준 에러 (stderr) 메시지
bridge.cpp:55:6: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
main()
^
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |