# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
204064 |
2020-02-24T06:12:52 Z |
Segtree |
Scales (IOI15_scales) |
C++14 |
|
6 ms |
376 KB |
#include"scales.h"
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
typedef long long ll;
typedef pair<ll,ll> P;
#define chmin(a,b) a=min(a,b)
#define chmax(a,b) a=max(a,b)
#define rep(i,n) for(int i=0;i<n;i++)
#define mod 1000000007
#define mad(a,b) a=(a+b)%mod
/*int VALUE[6];
int getLightest(int a,int b,int c){
a--,b--,c--;
vector<P> v;
v.push_back(make_pair(VALUE[a],a));
v.push_back(make_pair(VALUE[b],b));
v.push_back(make_pair(VALUE[c],c));
sort(v.begin(),v.end());
return v[0].second+1;
}
int getMedian(int a,int b,int c){
a--,b--,c--;
vector<P> v;
v.push_back(make_pair(VALUE[a],a));
v.push_back(make_pair(VALUE[b],b));
v.push_back(make_pair(VALUE[c],c));
sort(v.begin(),v.end());
return v[1].second+1;
}
int getHeaviest(int a,int b,int c){
a--,b--,c--;
vector<P> v;
v.push_back(make_pair(VALUE[a],a));
v.push_back(make_pair(VALUE[b],b));
v.push_back(make_pair(VALUE[c],c));
sort(v.begin(),v.end());
return v[2].second+1;
}
int getNextLightest(int a,int b,int c,int d){
a--,b--,c--,d--;
vector<P> v;
v.push_back(make_pair(VALUE[a],a));
v.push_back(make_pair(VALUE[b],b));
v.push_back(make_pair(VALUE[c],c));
v.push_back(make_pair(VALUE[d],d));
sort(v.begin(),v.end());
rep(i,4)if(v[i].second==d){
return v[(i+1)%4].second+1;
}
}
void answer(int w[]){
rep(i,6)cout<<w[i]<<" "; cout<<endl;
}*/
void init(int T){
return;
}
void orderCoins(){
int w[6];
vector<ll> a;
rep(i,6)a.push_back(i+1);
int v1=getNextLightest(a[1],a[2],a[3],a[0]);
int v2=getNextLightest(v1,a[4],a[5],a[0]);
w[0]=a[0],w[1]=v2;
vector<ll> b;
for(int i=1;i<=6;i++){
bool ok=1;
rep(j,2)if(w[j]==i)ok=0;
if(ok)b.push_back(i);
}
int v3=getNextLightest(b[0],b[1],b[2],w[1]);
int v4=getNextLightest(v3,b[3],w[0],w[1]);
w[2]=v4;
vector<ll> c;
for(int i=1;i<=6;i++){
bool ok=1;
rep(j,3)if(w[j]==i)ok=0;
if(ok)c.push_back(i);
}
int v5=getNextLightest(c[0],c[1],c[2],w[2]);
w[3]=v5;
vector<ll> d;
for(int i=1;i<=6;i++){
bool ok=1;
rep(j,4)if(w[j]==i)ok=0;
if(ok)d.push_back(i);
}
int v6=getNextLightest(d[0],d[1],w[2],w[3]);
w[4]=v6;
for(int i=1;i<=6;i++){
bool ok=1;
rep(j,5)if(w[j]==i)ok=0;
if(ok)w[5]=i;
}
int v7=getLightest(w[0],w[2],w[4]);
int v8;
for(int i=0;i<=4;i+=2){
if(v7==w[i]){
int k1=w[(i+5)%6];
int k2=w[i];
int k3=w[(i+1)%6];
v8=getLightest(k1,k2,k3);
break;
}
}
int pnt=-1;
rep(i,6)if(w[i]==v8)pnt=i;
int ww[6];
rep(i,6)ww[(i-pnt+6)%6]=w[i];
answer(ww);
}/*
int main(){
init(10);
rep(u,10){
rep(i,6)VALUE[i]=i;
rep(u,100)swap(VALUE[rand()%6],VALUE[rand()%6]);
orderCoins();
vector<P> v;
rep(i,6)v.push_back(make_pair(VALUE[i],i+1));
sort(v.begin(),v.end());
rep(i,6)cout<<v[i].second<<" "; cout<<endl;cout<<"--"<<endl;
}
}*/
Compilation message
scales.cpp: In function 'void init(int)':
scales.cpp:57:15: warning: unused parameter 'T' [-Wunused-parameter]
void init(int T){
^
scales.cpp: In function 'void orderCoins()':
scales.cpp:64:44: warning: conversion to 'int' from '__gnu_cxx::__alloc_traits<std::allocator<long long int> >::value_type {aka long long int}' may alter its value [-Wconversion]
int v1=getNextLightest(a[1],a[2],a[3],a[0]);
^
scales.cpp:64:44: warning: conversion to 'int' from '__gnu_cxx::__alloc_traits<std::allocator<long long int> >::value_type {aka long long int}' may alter its value [-Wconversion]
scales.cpp:64:44: warning: conversion to 'int' from '__gnu_cxx::__alloc_traits<std::allocator<long long int> >::value_type {aka long long int}' may alter its value [-Wconversion]
scales.cpp:64:44: warning: conversion to 'int' from '__gnu_cxx::__alloc_traits<std::allocator<long long int> >::value_type {aka long long int}' may alter its value [-Wconversion]
scales.cpp:65:42: warning: conversion to 'int' from '__gnu_cxx::__alloc_traits<std::allocator<long long int> >::value_type {aka long long int}' may alter its value [-Wconversion]
int v2=getNextLightest(v1,a[4],a[5],a[0]);
^
scales.cpp:65:42: warning: conversion to 'int' from '__gnu_cxx::__alloc_traits<std::allocator<long long int> >::value_type {aka long long int}' may alter its value [-Wconversion]
scales.cpp:65:42: warning: conversion to 'int' from '__gnu_cxx::__alloc_traits<std::allocator<long long int> >::value_type {aka long long int}' may alter its value [-Wconversion]
scales.cpp:66:10: warning: conversion to 'int' from '__gnu_cxx::__alloc_traits<std::allocator<long long int> >::value_type {aka long long int}' may alter its value [-Wconversion]
w[0]=a[0],w[1]=v2;
^
scales.cpp:74:44: warning: conversion to 'int' from '__gnu_cxx::__alloc_traits<std::allocator<long long int> >::value_type {aka long long int}' may alter its value [-Wconversion]
int v3=getNextLightest(b[0],b[1],b[2],w[1]);
^
scales.cpp:74:44: warning: conversion to 'int' from '__gnu_cxx::__alloc_traits<std::allocator<long long int> >::value_type {aka long long int}' may alter its value [-Wconversion]
scales.cpp:74:44: warning: conversion to 'int' from '__gnu_cxx::__alloc_traits<std::allocator<long long int> >::value_type {aka long long int}' may alter its value [-Wconversion]
scales.cpp:75:42: warning: conversion to 'int' from '__gnu_cxx::__alloc_traits<std::allocator<long long int> >::value_type {aka long long int}' may alter its value [-Wconversion]
int v4=getNextLightest(v3,b[3],w[0],w[1]);
^
scales.cpp:84:44: warning: conversion to 'int' from '__gnu_cxx::__alloc_traits<std::allocator<long long int> >::value_type {aka long long int}' may alter its value [-Wconversion]
int v5=getNextLightest(c[0],c[1],c[2],w[2]);
^
scales.cpp:84:44: warning: conversion to 'int' from '__gnu_cxx::__alloc_traits<std::allocator<long long int> >::value_type {aka long long int}' may alter its value [-Wconversion]
scales.cpp:84:44: warning: conversion to 'int' from '__gnu_cxx::__alloc_traits<std::allocator<long long int> >::value_type {aka long long int}' may alter its value [-Wconversion]
scales.cpp:93:44: warning: conversion to 'int' from '__gnu_cxx::__alloc_traits<std::allocator<long long int> >::value_type {aka long long int}' may alter its value [-Wconversion]
int v6=getNextLightest(d[0],d[1],w[2],w[3]);
^
scales.cpp:93:44: warning: conversion to 'int' from '__gnu_cxx::__alloc_traits<std::allocator<long long int> >::value_type {aka long long int}' may alter its value [-Wconversion]
scales.cpp:115:10: warning: 'v8' may be used uninitialized in this function [-Wmaybe-uninitialized]
rep(i,6)if(w[i]==v8)pnt=i;
^~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Partially correct |
5 ms |
376 KB |
Output is partially correct |
2 |
Partially correct |
5 ms |
256 KB |
Output is partially correct |
3 |
Partially correct |
5 ms |
256 KB |
Output is partially correct |
4 |
Partially correct |
5 ms |
248 KB |
Output is partially correct |
5 |
Partially correct |
5 ms |
376 KB |
Output is partially correct |
6 |
Partially correct |
5 ms |
256 KB |
Output is partially correct |
7 |
Partially correct |
5 ms |
256 KB |
Output is partially correct |
8 |
Partially correct |
6 ms |
376 KB |
Output is partially correct |
9 |
Partially correct |
5 ms |
376 KB |
Output is partially correct |
10 |
Partially correct |
5 ms |
256 KB |
Output is partially correct |
11 |
Partially correct |
5 ms |
248 KB |
Output is partially correct |
12 |
Partially correct |
5 ms |
376 KB |
Output is partially correct |
13 |
Partially correct |
5 ms |
256 KB |
Output is partially correct |
14 |
Partially correct |
5 ms |
256 KB |
Output is partially correct |
15 |
Partially correct |
5 ms |
256 KB |
Output is partially correct |
16 |
Partially correct |
5 ms |
256 KB |
Output is partially correct |
17 |
Partially correct |
5 ms |
256 KB |
Output is partially correct |
18 |
Partially correct |
5 ms |
256 KB |
Output is partially correct |
19 |
Partially correct |
5 ms |
256 KB |
Output is partially correct |
20 |
Partially correct |
5 ms |
256 KB |
Output is partially correct |
21 |
Partially correct |
5 ms |
376 KB |
Output is partially correct |
22 |
Partially correct |
5 ms |
256 KB |
Output is partially correct |
23 |
Partially correct |
5 ms |
256 KB |
Output is partially correct |
24 |
Partially correct |
5 ms |
256 KB |
Output is partially correct |
25 |
Partially correct |
5 ms |
256 KB |
Output is partially correct |
26 |
Partially correct |
5 ms |
256 KB |
Output is partially correct |
27 |
Partially correct |
5 ms |
256 KB |
Output is partially correct |
28 |
Partially correct |
5 ms |
256 KB |
Output is partially correct |
29 |
Partially correct |
5 ms |
256 KB |
Output is partially correct |
30 |
Partially correct |
5 ms |
256 KB |
Output is partially correct |
31 |
Partially correct |
5 ms |
256 KB |
Output is partially correct |
32 |
Partially correct |
5 ms |
256 KB |
Output is partially correct |
33 |
Partially correct |
5 ms |
256 KB |
Output is partially correct |
34 |
Partially correct |
6 ms |
256 KB |
Output is partially correct |
35 |
Partially correct |
5 ms |
248 KB |
Output is partially correct |
36 |
Partially correct |
5 ms |
376 KB |
Output is partially correct |
37 |
Partially correct |
5 ms |
256 KB |
Output is partially correct |
38 |
Partially correct |
5 ms |
256 KB |
Output is partially correct |
39 |
Partially correct |
5 ms |
256 KB |
Output is partially correct |
40 |
Partially correct |
5 ms |
256 KB |
Output is partially correct |