CodeTON Round 1 (Div. 1 + Div. 2, Rated, Prizes!) A ~ D

A.

成都创新互联公司专注于汝州网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供汝州营销型网站建设,汝州网站制作、汝州网页设计、汝州网站官网定制、小程序制作服务,打造汝州网络公司原创品牌,更为您提供汝州网站排名全网营销落地服务。

给定一个序列,对于任意1<=k<=n 都满足|aiak|+|akaj|=|aiaj|,

找满足条件的i和j并输出

思路:

观察样例,发现输出的是最大值和最小值,那么猜答案是最大值和最小值,进行证明

若答案不是最大值和最小值,则一定存在一个k使得|ak-ap|大于|aj-ai| 一定不满足|aiak|+|akaj|=|aiaj| 与命题矛盾

所以记录最大值和最小值 输出即可。

代码:

#include 
using namespace std;
#define x first
#define y second
#define endl '\n'
#define int long long
#define debug(x) cout << "*" << x << endl;  
const int P = ;
#define ll long long
const int mod = 1E6 + 7;
const int INF = 0x3f, sINF = 0x3f3f3f3f;
typedef unsignedlong long ULL;
typedef pair<int, int> PII;
typedef pair<long long, long long> PLL;
int dx[4] = {1, 0, -1, 0}, dy[4] = {0, 1, 0, -1};
const int N = 3e5 + 10;;
int T;
const int UN = 1e9 + 10;

signed main()
{
    cin>>T;
while(T--)
    {
int n;
int maxa = 0, mina = UN;
        cin>>n;
int ans1, ans2;
for(int i = 1; i <= n; i++)
        {
int temp;
            cin>>temp;
            
if(temp > maxa) 
            {
                ans1= i;
                maxa= temp;
            }
            
if(temp < mina)
            {
                ans2= i;
                mina= temp;
            }
        }
if(n == 1) cout<<"1 1"<<endl;
else cout<" "<endl;
        
    }
}

网站名称:CodeTON Round 1 (Div. 1 + Div. 2, Rated, Prizes!) A ~ D
分享链接:http://cdiso.cn/article/dsoihpe.html

其他资讯