A
#include<iostream>
#include<cstring>
#include<cstdio>
#include<queue>
#include<cstdlib>
#include<cmath>
#include<stack>
#include<map>
#include<string>
#include<vector>
#include<algorithm>
using namespace std;
#define ll long long
#define INF 0x3f3f3f3f
#define ull unsigned long long
#define endl '\n'
const double pi = acos(-1);
const int maxn = 3e5 + 10;
const int maxm = 2e7 + 10;
const ll mod = 1e9+7;
int t, n;
int main(){
scanf("%d", &t);
while(t--){
scanf("%d", &n);
if(n%3==0){
ll ans=(ll)(n/3)*(n/3)*(n/3);
cout<<ans<<endl;
}
else if(n%4==0)
{
ll ans = (ll)(n/4)*(n/2)*(n/4);
cout<<ans<<endl;
}
else cout<<"-1"<<endl;
}
return 0;
}
B
#include<iostream>
#include<cstring>
#include<cstdio>
#include<queue>
#include<cstdlib>
#include<cmath>
#include<stack>
#include<map>
#include<string>
#include<vector>
#include<set>
#include<algorithm>
using namespace std;
#define ll long long
#define INF 0x3f3f3f3f
#define ull unsigned long long
#define endl '\n'
const double pi = acos(-1);
const int maxn = 3e5 + 10;
const int maxm = 2e7 + 10;
const ll mod = 1e9+7;
int t, n;
char s[maxn];
struct node{
int l, r;
}p[maxn];
bool cmp(node a, node b){
if(a.r < a.l && b.r >= b.l) return 1;
if(a.r >= a.l && b.r < b.l) return 0;
if(a.l <= a.r && b.l <= b.r){
return a.l > b.l;
}
if(a.l > a.r && b.l > b.r){
return a.r < b.r;
}
}
int main(){
scanf("%d", &t);
while(t--){
int sum = 0;
scanf("%d", &n);
for(int i = 1 ; i <= n ; ++ i)
p[i].l = p[i].r = 0;
for(int i = 1 ; i <= n ; ++ i){
scanf("%s", s);
for(int j = 0 ; j < strlen(s) ; ++ j){
if(s[j] == '(') p[i].l ++;
else{
if(p[i].l > 0){
p[i].l --;
sum += 2;
}
else{
p[i].r ++;
}
}
}
//cout <<sum <<"**"<< endl;
}
sort(p + 1, p + 1 + n, cmp);
int now = 0;
for(int i = 1 ; i <= n ; ++ i){
if(p[i].r > now){
sum += now*2;
now = 0;
}
else{
sum += p[i].r*2;
now -= p[i].r;
}
now += p[i].l;
}
cout << sum << endl;
}
return 0;
}
C
#include<iostream>
#include<cstring>
#include<cstdio>
#include<queue>
#include<cstdlib>
#include<cmath>
#include<stack>
#include<map>
#include<string>
#include<vector>
#include<algorithm>
using namespace std;
#define ll long long
#define INF 0x3f3f3f3f
#define ull unsigned long long
#define endl '\n'
const double pi = acos(-1);
const int maxn = 3e5 + 10;
const int maxm = 2e7 + 10;
const ll mod = 1e9+7;
int t, n;
struct node{
int val, id;
}s[maxn];
bool cmp(node a, node b){
return a.val < b.val;
}
int main(){
scanf("%d", &t);
while(t--){
int x, y;
scanf("%d", &n);
for(int i = 1 ;i <= n * 3 ; ++ i){
scanf("%d %d", &x, &y);
s[i].val = x + y;
s[i].id = i;
}
sort(s + 1, s + 1 + n * 3, cmp);
for(int i = 1 ; i <= 3 * n ;i += 3){
cout << s[i].id << ' ' << s[i+1].id << ' '
<< s[i+2].id << endl;
}
}
return 0;
}
D
#include<iostream>
#include<cstring>
#include<cstdio>
#include<queue>
#include<cstdlib>
#include<cmath>
#include<stack>
#include<map>
#include<string>
#include<vector>
#include<set>
#include<algorithm>
using namespace std;
#define ll long long
#define INF 0x3f3f3f3f
#define ull unsigned long long
#define endl '\n'
const double pi = acos(-1);
const int maxn = 3e5 + 10;
const int maxm = 2e7 + 10;
const ll mod = 1e9+7;
int a[maxn], ans[maxn];
int t, l, r, m, n;
int main(){
scanf("%d", &t);
while(t--){
scanf("%d %d", &n, &m);
set<int> s;
for(int i = 1 ; i <= n ; ++ i) a[i] = i, s.insert(i);
for(int i = 1 ; i <= m ; ++ i){
scanf("%d %d", &l, &r);
a[l] = max(r, a[l]);
}
int pos = 1;
for(int i = 1 ; i <= n ; ++ i){
if(i!=1){
s.insert(ans[i-1]);
}
while(pos <= a[i]){
ans[pos] = *s.begin();
s.erase(ans[pos]);
pos ++;
}
}
for(int i = 1 ; i <= n ; ++ i){
printf("%d%c", ans[i], i == n ? '\n' : ' ');
}
}
return 0;
}
G
#include<iostream>
#include<cstring>
#include<cstdio>
#include<queue>
#include<cstdlib>
#include<cmath>
#include<stack>
#include<map>
#include<string>
#include<vector>
#include<algorithm>
using namespace std;
#define ll long long
#define INF 0x3f3f3f3f
#define ull unsigned long long
#define endl '\n'
const double pi = acos(-1);
const int maxn = 3e5 + 10;
const int maxm = 2e7 + 10;
const ll mod = 1e9+7;
ll sum[70]={1,2};
ll f(ll n)
{
if(n==1)return 1;
ll ans =0,i;
for(i=63;i>=1;i--)
{
if(n>>i==1){
n-=1LL<<i;
break;
}
}
return ((f(n+1)%mod+sum[i]%mod)%mod -1 +(n%mod)*((1LL<<(i-1))%mod)%mod + mod)%mod;
}
int main(){
for(int i=2;i<=65;i++)
{
sum[i] = 2*sum[i-1]%mod;
sum[i]=(sum[i] + ((1LL<<(i-2))%mod*((1LL<<i-1)%mod)%mod))%mod;
sum[i]=(sum[i] + (1LL<<(i-2) )% mod)%mod;
sum[i]--;
sum[i] = (sum[i]+mod) % mod;
}
ll n;
int t;
scanf("%d",&t);
while(t--)
{
scanf("%lld",&n);
cout<<f(n)%mod<<endl;
}
return 0;
}
K
#include<iostream>
#include<cstring>
#include<cstdio>
#include<queue>
#include<cstdlib>
#include<cmath>
#include<stack>
#include<map>
#include<string>
#include<vector>
#include<algorithm>
using namespace std;
#define ll long long
#define INF 0x3f3f3f3f
#define ull unsigned long long
#define endl '\n'
const double pi = acos(-1);
const int maxn = 3e5 + 10;
const int maxm = 2e7 + 10;
const ll mod = 1e9+7;
int t;
char s[10];
int n, shi, fen;
double x;
char op;
int main(){
scanf("%d", &n);
for(int i = 1 ; i <= n ; ++ i){
scanf("%d %d ",&shi, &fen);
scanf("UTC%c%lf", &op,&x);
int cnt =0;
if(op=='-'){x=-1*x-8;}
if(op=='+')x=x-8;
int ff =(x*10-(int)x*10)*6;
for(int i=0;i<=6;i++){
if((ff+i)%6==0){ff+=i;break;}
if((ff-i)%6==0){ff-=i;break;}
}
int hh=(int)x;
//cout<<x<<" "<<hh<<" "<<ff<<endl;
if(fen+ff<0){shi--;fen = fen+ff+60;}
else if(fen+ff>=60){shi++;fen = fen+ff-60;}
else fen+=ff;
shi = (shi + hh + 24) % 24;
printf("%02d:%02d\n", shi, fen);
}
return 0;
}