头像

wxdl

山西大学




离线:6小时前


活动打卡代码 AcWing 3252. 最小差值

wxdl
6小时前
#include<algorithm>
#include<iostream>
#include<cmath>
#include<climits>
using namespace std;
const int N=1e3+5;
int a[N];
int n;
int main()
{
    cin>>n;
    for(int i=0;i<n;i++)   cin>>a[i];
    int res=INT_MAX;
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n&&j!=i;j++)
        {
            int temp=abs(a[i]-a[j]);
            res=min(temp,res);
        }
    }
    cout<<res<<endl;
    return 0;
}
//这里填你的代码^^
//注意代码要放在两组三个点之间,才可以正确显示代码高亮哦~


活动打卡代码 AcWing 3247. 打酱油

wxdl
6小时前
#include<iostream>
using namespace std;
int n;
int main()
{
    cin>>n;
    int res=0;
    while(n)
    {
        if(n>=50) res+=7*(n/50),n-=(n/50)*50;
        else if(n<50&&n>=30)  res+=4*(n/30),n-=(n/30)*30;
        else res+=(n/10),n-=(n/10)*10;
    }
    cout<<res<<endl;
    return 0;
}
//这里填你的代码^^
//注意代码要放在两组三个点之间,才可以正确显示代码高亮哦~


活动打卡代码 AcWing 3242. 分蛋糕

wxdl
6小时前
#include<iostream>
using namespace std;
const int N =1e3+5;
int a[N],n,k;
int main()
{
    cin>>n>>k;
    int sum=0;
    for(int i=0;i<n;i++)   cin>>a[i],sum+=a[i];
    int now=0,res=0;
    int check=0;
    for(int i=0;i<n;i++)
    {
        now+=a[i];
        if(now>=k)
        {
            check+=now;
            res++;
            now=0;
        }
    }
    if(check<sum)  res++;
    cout<<res<<endl;
    return 0;
}
//这里填你的代码^^
//注意代码要放在两组三个点之间,才可以正确显示代码高亮哦~


活动打卡代码 AcWing 3238. 工资计算

wxdl
6小时前
#include <iostream>
#include <cstring>
#include <algorithm>

using namespace std;

int get(int n)
{
    if (n <= 3500) return n;
    else
    {
        int a[8] = {0, 1500, 4500, 9000, 35000, 55000, 80000, 1000000000};
        double b[8] = {0, 0.03, 0.1, 0.2, 0.25, 0.3, 0.35, 0.45};

        double res = 0;
        n -= 3500;
        for (int i = 1; i <= 7; i ++ )
            if (a[i] <= n)
                res += (a[i] - a[i - 1]) * b[i];
            else
            {
                res += (n - a[i - 1]) * b[i];
                break;
            }
        return n - res + 3500 + 1e-6;
    }
}

int main()
{
    int n;
    cin >> n;

    int l = 0, r = 1e9;
    while (l < r)
    {
        int mid = l + r >> 1;
        if (get(mid) >= n) r = mid;
        else l = mid + 1;
    }

    cout << r << endl;
    return 0;
}
//这里填你的代码^^
//注意代码要放在两组三个点之间,才可以正确显示代码高亮哦~


活动打卡代码 AcWing 3233. 火车购票

wxdl
6小时前
#include <iostream>
#include <cstring>
#include <algorithm>

using namespace std;

const int N = 110;

bool st[N];

int main()
{
    int n;
    cin >> n;

    while (n -- )
    {
        int p;
        cin >> p;

        bool success = false;
        for (int i = 1; i <= 100; i += 5)
        {
            for (int j = 0; j < 5; j ++ )
            {
                int s = 0;
                for (int k = j; k < 5; k ++ )
                    if (!st[i + k]) s ++ ;
                    else break;
                if (s >= p)
                {
                    for (int k = 0; k < p; k ++ )
                    {
                        int t = i + j + k;
                        st[t] = true;
                        cout << t << ' ';
                    }
                    success = true;
                    break;
                }
            }
            if (success) break;
        }
        if (!success)
        {
            for (int i = 1; i <= 100 && p; i ++ )
                if (!st[i])
                {
                    p -- ;
                    st[i] = true;
                    cout << i << ' ';
                }
        }
        cout << endl;
    }

    return 0;
}
//这里填你的代码^^
//注意代码要放在两组三个点之间,才可以正确显示代码高亮哦~


活动打卡代码 AcWing 3228. 俄罗斯方块

wxdl
6小时前
#include <iostream>
#include <cstring>
#include <algorithm>

using namespace std;

const int N = 20;

int g[N][N], s[N][N];
int p[4][4];

bool draw(int x, int y)
{
    memcpy(s, g, sizeof s);
    for (int i = 0; i < 4; i ++ )
        for (int j = 0; j < 4; j ++ )
            if (p[i][j])
            {
                int a = x + i, b = y + j;
                s[a][b] ++ ;
                if (s[a][b] == 2) return true;
            }
    return false;
}

int main()
{
    for (int i = 0; i < 15; i ++ )
        for (int j = 0; j < 10; j ++ )
            cin >> g[i][j];
    for (int i = 0; i < 10; i ++ ) g[15][i] = 1;

    for (int i = 0; i < 4; i ++ )
        for (int j = 0; j < 4; j ++ )
            cin >> p[i][j];

    int c;
    cin >> c;
    c -- ;

    for (int i = 0; ; i ++ )
        if (draw(i, c))
        {
            draw(i - 1, c);
            break;
        }

    for (int i = 0; i < 15; i ++ )
    {
        for (int j = 0; j < 10; j ++ )
            cout << s[i][j] << ' ';
        cout << endl;
    }

    return 0;
}
//这里填你的代码^^
//注意代码要放在两组三个点之间,才可以正确显示代码高亮哦~


活动打卡代码 AcWing 3237. 中间数

wxdl
1天前
#include<iostream>
using namespace std;
const int N =1e3+5;
int a[N];
int n;
int main()
{
    cin>>n;
    for(int i=0;i<n;i++)   cin>>a[i];
    int l=0,r=0;
    int ans=0;
    bool check=false;
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
        {
            if(a[i]>a[j])  l++;
            if(a[i]<a[j])  r++;
        }
        if(l==r)
        {
            ans=a[i];
            check=true;
        }
        l=r=0;
    }
    if(check)  cout<<ans<<endl;
    else cout<<-1<<endl;
    return 0;
}
//这里填你的代码^^
//注意代码要放在两组三个点之间,才可以正确显示代码高亮哦~


活动打卡代码 AcWing 3232. 最大波动

wxdl
3天前
#include<iostream>
#include<cmath>
#include<algorithm>
using namespace std;
const int N =1e3+5;
int n;
int a[N]; 
int main()
{
    cin>>n;
    for(int i=0;i<n;i++)   cin>>a[i];
    int mx=0;
    for(int i=1 ;i<n;i++)
    {
        int temp=abs(a[i]-a[i-1]);
        mx=max(temp,mx);
    }
    cout<<mx<<endl;
    return 0;
}
//这里填你的代码^^
//注意代码要放在两组三个点之间,才可以正确显示代码高亮哦~


活动打卡代码 AcWing 3227. 折点计数

wxdl
3天前
#include<iostream>
using namespace std;
const int N =1e3+5;
int a[N];
int n;
int main()
{
    cin>>n;
    int cnt=0;
    for(int i=0;i<n;i++)   cin>>a[i];
    for(int i=1;i<n-1;i++)
    {
        int x=a[i]-a[i-1];
        int y=a[i]-a[i+1];
        if(x*y>0) cnt++;
    }
    cout<<cnt<<endl;
    return 0;
}
//这里填你的代码^^
//注意代码要放在两组三个点之间,才可以正确显示代码高亮哦~


活动打卡代码 AcWing 3223. 消除类游戏

wxdl
3天前
#include <stdio.h>
#include <string.h>

#define N 30

int a[N][N], t[N][N];

int main(void)
{
    int n, m, i, j;

    scanf("%d%d", &n, &m);
    for(i=0; i<n; i++)
        for(j=0; j<m; j++)
            scanf("%d", &a[i][j]);

    memset(t, 0, sizeof(t));
    // 进行行标记(可以消除则置1)
    for(i=0; i<n; i++)
        for(j=0; j<m-2; j++)
            if(a[i][j]== a[i][j + 1] && a[i][j + 1] == a[i][j +2])
                t[i][j] = t[i][j + 1] = t[i][j + 2] = 1;
    // 进行列标记(可以消除则置1)
    for(j=0; j<m; j++)
        for(i=0; i<n-2; i++)
            if(a[i][j] == a[i + 1][j] && a[i + 1][j] == a[i + 2][j])
                t[i][j] = t[i + 1][j] = t[i + 2][j] = 1;

    // 重置矩阵a
    for(i=0; i<n; i++)
        for(j=0; j<m; j++)
            if(t[i][j])
                a[i][j] = 0;

    // 输出结果
    for(i=0; i<n; i++) {
        for(j=0; j<m; j++) {
            if(j != 0)
                printf(" ");
            printf("%d", a[i][j]);
        }
        printf("\n");
    }

    return 0;
}
//这里填你的代码^^
//注意代码要放在两组三个点之间,才可以正确显示代码高亮哦~