Блог пользователя atcoder_official

Автор atcoder_official, история, 13 месяцев назад, По-английски

We will hold UNIQUE VISION Programming Contest 2025 Spring (AtCoder Beginner Contest 398).

We are looking forward to your participation!

  • Проголосовать: нравится
  • -27
  • Проголосовать: не нравится

»
13 месяцев назад, скрыть # |
 
Проголосовать: нравится +14 Проголосовать: не нравится

why is kenkoooo not working these days?

»
13 месяцев назад, скрыть # |
 
Проголосовать: нравится +7 Проголосовать: не нравится

Recent ABC contests are pretty good. Wish another fascinating ABC tonight!

»
13 месяцев назад, скрыть # |
 
Проголосовать: нравится +4 Проголосовать: не нравится

The special effect when clicking the left mouse button is quite interesting.

»
13 месяцев назад, скрыть # |
Rev. 2  
Проголосовать: нравится +37 Проголосовать: не нравится

Hello AtCoder,

Please stop blocking kenkoooo thanks. Or please add pages like My Submissions or Friends' Submissions on AtCoder. Thank you!

»
13 месяцев назад, скрыть # |
 
Проголосовать: нравится -6 Проголосовать: не нравится

F is too standard.

»
13 месяцев назад, скрыть # |
 
Проголосовать: нравится +14 Проголосовать: не нравится

what happened to kenkooo? It has been freezing for over a week.

»
13 месяцев назад, скрыть # |
 
Проголосовать: нравится -21 Проголосовать: не нравится

D is too hard for me

»
13 месяцев назад, скрыть # |
 
Проголосовать: нравится +1 Проголосовать: не нравится
»
13 месяцев назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

why was tle in c ? this code is n log n , is not ?


#include <bits/stdc++.h> using namespace std; #define FAST_IO ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); typedef long long ll; void solve(){ FAST_IO ll n; cin >> n; vector<ll> a(n); multiset<ll> ms; for(ll i = 0; i < n; i++){ cin >> a[i]; ms.insert(a[i]); } bool c = true; vector<pair<ll,ll>> aux; for(ll i = 0; i < n; i++){ if(ms.count(a[i]) == 1){ aux.push_back({a[i],i+1}); c = false; } } if(c){ cout << -1 << endl; return; } ll ans = -1; ll comp = -1; for(ll i = 0; i < aux.size(); i++){ if(aux[i].first > comp){ comp = aux[i].first; ans = aux[i].second; } } cout << ans << endl; return; } int main(){ solve(); }
»
13 месяцев назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

What a shit contest it is!

problem F is so shit!

»
13 месяцев назад, скрыть # |
Rev. 2  
Проголосовать: нравится 0 Проголосовать: не нравится

For problem C,

#include <bits/stdc++.h>

using namespace std;

int main(){
  ios::sync_with_stdio(0);
  cin.tie(0);
  int n;
  cin >> n;
  int inp, flag=0;
  vector <pair<int, int>> vp;
  for(int i=0; i<n; i++){
    cin >> inp;
    vp.push_back(make_pair(inp, i+1));
  }
  if(n == 1){
    cout << "1\n";
  } else {
    sort(vp.begin(), vp.end());
    for(int i=n-1; i>0; i--){
      if(vp[i-1].first != vp[i].first){
	cout << vp[i].second << "\n";
	flag =1;
	break;
      } else {
	while(vp[i-1].first == vp[i].first || i == 1){
	  i--;
	}
      }
    }
    if(flag==0){
      cout << "-1\n";
    }
  }
}

I can't figure out how this is failing?

»
13 месяцев назад, скрыть # |
 
Проголосовать: нравится +6 Проголосовать: не нравится

Absolutely terrible contest.

»
13 месяцев назад, скрыть # |
Rev. 3  
Проголосовать: нравится +5 Проголосовать: не нравится

F has no "takahash" substring.(Takahashi, same pronunciation with 它卡哈希 in Chinese which means the problem can't solve by hashing.) So it can be solved easily by hashing :) LOL

More, G is too hard for rated participant :(

»
13 месяцев назад, скрыть # |
 
Проголосовать: нравится +31 Проголосовать: не нравится

problem G is well known in India

»
13 месяцев назад, скрыть # |
Rev. 2  
Проголосовать: нравится +4 Проголосовать: не нравится

Was it just me who found the statement and samples for C contradicting (somehow or I am just dumb). (I eventually guessed it from samples).

»
13 месяцев назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

What was the answer to problem G

»
13 месяцев назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Louissun used AI in the competition.

»
13 месяцев назад, скрыть # |
 
Проголосовать: нравится +13 Проголосовать: не нравится

Problem G is a harder version of Canada MO 2019/5.

»
13 месяцев назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

I used Manacher algorithm to solve problem F, and I found it in the Japanese version of editorial. In fact, I just learned this algorithm from Codeforces Round 524 (Div. 2) E. Sonya and Matrix Beauty, maybe several months ago.

This really feels good, and makes me believe that everyone would always benefit from your practice sooner or later :D

»
13 месяцев назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

For the number of connected components where the number of vertices in both parts are both oddeditorial has oeinstead of oo

»
13 месяцев назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

E is disturbing for such a strict output format.

»
12 месяцев назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Who can help me with problem E?

#include<bits/stdc++.h>
using namespace std;
int n,cnt1,cnt2,A[105],B[105],ft[105];
vector<int> zi[105];
set<pair<int,int> > s;
void dfs(int u,int fa,int s){
	ft[u]=fa;
	if(s)
		A[++cnt1]=u;
	else
		B[++cnt2]=u;
	for(int i=0;i<zi[u].size();i++){
		int v=zi[u][i];
		if(v==fa)
			continue;
		dfs(v,u,s^1);
	}
}
void solve(){
	while(1){
		set<pair<int,int> >::iterator it=s.begin();
		cout<<(*it).first<<" "<<(*it).second<<endl;
		s.erase(it);
		int u,v;
		cin>>u>>v;
		pair<int,int> p1={u,v},p2={v,u};
		if(u==-1)
			break; 
		set<pair<int,int> >::iterator it1,it2;
		it1=s.find(p1),it2=s.find(p2);
		if(it1==s.end())
			s.erase(it2);
		else
			s.erase(it1);
	}
}
int main(){
	cin>>n;
	for(int i=1;i<n;i++){
		int u,v;
		cin>>u>>v;
		zi[u].push_back(v);
		zi[v].push_back(u);
	}
	dfs(1,0,1);
	int sum=cnt1*cnt2-n+1;
	for(int i=1;i<=cnt1;i++)
		for(int j=1;j<=cnt2;j++){
			int u=A[i],v=B[j];
			if(ft[u]==v||ft[v]==u)
				continue;
			s.insert(make_pair(u,v));
		}
	if(sum%2){
		cout<<"First"<<endl;
		solve();
	}
	else{
		cout<<"Second"<<endl;
		int u,v;
		cin>>u>>v;
		if(u==-1)
			return 0;
		pair<int,int> p1={u,v},p2={v,u};
		set<pair<int,int> >::iterator it1,it2;
		it1=s.find(p1),it2=s.find(p2);
		if(it1==s.end())
			s.erase(it2);
		else
			s.erase(it1);
		solve(); 
	}
	return 0;
}

Thanks!