日常掉分,还是不够细心,第二题的全零数据直接把我干掉QAQ
感觉自己比赛时写的代码太乱了,赛后还是得想想怎么写更短小精悍。
A - Mezo Playing Zoma
B - Just Eat It!
C - Fadi and LCM
D Dr. Evil Underscores
E Delete a Segment
void solve()
{
int n; string s;
cin >> n>>s;
cout<<n+1<<"\n";
}
int main()
{
solve();
return 0;
}
const int N = 466666;
ll a[N];
void solve()
{
int n;
scanf("%d", &n);
for(int i = 1; i <= n; ++i) scanf("%lld", &a[i]);
ll sum = 0, sumh = 0;
for(int i = 1; i < n; ++i) {
sum += a[i];
sumh += a[n-i+1];
if(sum <= 0||sumh<=0) {
puts("NO");
return ;
}
}
puts("YES");
}
int main()
{
int t;
scanf("%d", &t);
while(t--)
solve();
return 0;
}
void solve()
{
ll x;
scanf("%lld", &x);
ll a, b;
for(ll i = 1; i*i <= x; ++i) {
if(x%i == 0&&__gcd(i, x/i)==1) {
a = i, b = x/i;
}
}
printf("%lld %lld\n", a, b);
}
int main()
{
// int t;
// scanf("%d", &t);
// while(t--)
solve();
return 0;
}
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
#define debug(x) cout<<#x<<" = "<
#define nl cout <<"\n"
#define gg cout<<"-----------QAQ---------\n"
typedef long long ll;
const int N = 266666;
ll a[N];
ll dfs(ll depth, int l, int r)
{
if(depth < 0) return 0;
ll u = ((ll)1<<depth);
ll f = 0, pre = 0;
f = a[l]&u;
for(int i = l+1; i <= r; ++i) {
ll t = a[i]&u;
if(t!=f) {
pre = i; break;
}
}
if(!pre) return dfs(depth-1, l, r);
return min(dfs(depth-1, l, pre-1), dfs(depth-1, pre, r))+u;
}
int main()
{
int n;
scanf("%d", &n);
for(int i = 1; i <= n; ++i) scanf("%lld", &a[i]);
sort(a+1, a+n+1);
ll ans = dfs(30, 1, n);
printf("%lld\n", ans);
}
#include
#define debug(x) cout <<#x<<" = "<
#define gg cout <<"-------------QAQ---------------"<
#define fi first
#define se second
#define pb push_back
#define SZ(x) ((int)x.size())
#define L(i,u) for (register int i=head[u]; i; i=nxt[i])
#define rep(i,a,b) for (register int i=(a); i<=(b); i++)
#define per(i,a,b) for (register int i=(a); i>=(b); i--)
#define inf 0x3f3f3f3f
using namespace std;
typedef long long ll;
typedef unsigned int ui;
typedef pair<int,int> pii;
typedef vector<int> Vi;
template<class T> inline void read(T &x){
x=0; char c=getchar(); int f=1;
while (!isdigit(c)) {if (c=='-') f=-1; c=getchar();}
while (isdigit(c)) {x=x*10+c-'0'; c=getchar();} x*=f;
}
const int N = 466666;
void FAST(){ios::sync_with_stdio(false);cin.tie(0);}
pii a[N];
int ans[N];
void solve()
{
int n, l, r;
scanf("%d", &n);
for(int i = 1; i <= n; ++i) {
scanf("%d%d", &l, &r);
a[2*i-1] = pii(l, -i);
a[2*i] = pii(r, i);
ans[i] = 0;
}
sort(a+1, a+2*n+1);
int c = 0;
multiset<int> s;
for(int i = 1; i <= 2*n; ++i)
{
if(a[i].second < 0) s.insert(-a[i].second);
else s.erase(s.find(a[i].second));
c += (s.size()==0);
if(s.size()==1&&a[i].se>0&&a[i+1].se<0&&a[i+1].fi>a[i].fi)
ans[*s.begin()]++;
if(s.size()==1&&a[i].se<0&&a[i+1].second>0) //其单独成一段的情况
ans[*s.begin()]--;
}
int Ans = -1;
for(int i = 1; i <= n; ++i)
Ans = max(Ans, ans[i]);
printf("%d\n", c+Ans);
}
int main()
{
int t;
scanf("%d", &t);
while(t--)
solve();
return 0;
}