当前位置: 首页 > news >正文

东莞效果好的网站建设房地产建筑公司网站

东莞效果好的网站建设,房地产建筑公司网站,wordpress支持爱奇艺,网站建设 配资题目描述 有 n 个人参加一个舞蹈课。每个人的舞蹈技术由整数来决定。在舞蹈课的开始,他们从左到右站成一排。当这一排中至少有一对相邻的异性时,舞蹈技术相差最小的那一对会出列并开始跳舞。如果不止一对,那么最左边的那一对出列。一对异性出…

题目描述

有 n 个人参加一个舞蹈课。每个人的舞蹈技术由整数来决定。在舞蹈课的开始,他们从左到右站成一排。当这一排中至少有一对相邻的异性时,舞蹈技术相差最小的那一对会出列并开始跳舞。如果不止一对,那么最左边的那一对出列。一对异性出列之后,队伍中的空白按原顺序补上(即:若队伍为 ABCD,那么 BC 出列之后队伍变为 AD)。舞蹈技术相差最小即是 ai​ 的绝对值最小。

任务是模拟以上过程,确定跳舞的配对及顺序。

输入格式

第一行一个正整数 n 表示队伍中的人数。

第二行包含 n 个字符 B 或者 GB 代表男,G 代表女。

第三行为 n 个整数 ai​。所有信息按照从左到右的顺序给出。

输出格式

第一行一个整数表示出列的总对数 k。

接下来 k 行,每行是两个整数。按跳舞顺序输出,两个整数代表这一对舞伴的编号(按输入顺序从左往右 1 至 n 编号)。请先输出较小的整数,再输出较大的整数。

输入输出样例

输入 #1复制

4
BGBG
4 2 4 3

输出 #1复制

2
3 4
1 2

说明/提示

对于 50% 的数据,1≤n≤200。

对于 100% 的数据,1≤n≤2×105,0≤ai​≤107

代码实现:

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

struct Pair {
    int idx1, idx2;
    int diff;
    bool operator<(const Pair& other) const {
        if (diff != other.diff) return diff < other.diff;
        return idx1 < other.idx1;
    }
};

int main() {
    int n;
    cin >> n;
    
    string genders;
    cin >> genders;
    
    vector<int> skills(n);
    for (int i = 0; i < n; i++) {
        cin >> skills[i];
    }
    
    vector<int> original_indices(n);
    for (int i = 0; i < n; i++) {
        original_indices[i] = i + 1;
    }
    
    vector<pair<int, int> > result;
    
    while (true) {
        vector<Pair> candidates;
        int current_size = genders.size();
        
        for (int i = 0; i < current_size - 1; i++) {
            if (genders[i] != genders[i + 1]) {
                Pair p;
                p.idx1 = i;
                p.idx2 = i + 1;
                p.diff = abs(skills[i] - skills[i + 1]);
                candidates.push_back(p);
            }
        }
        
        if (candidates.empty()) break;
        
        sort(candidates.begin(), candidates.end());
        Pair selected = candidates[0];
        
        int idx1 = selected.idx1;
        int idx2 = selected.idx2;
        
        result.push_back(make_pair(original_indices[idx1], original_indices[idx2]));
        
        genders.erase(idx1, 2);
        skills.erase(skills.begin() + idx1, skills.begin() + idx1 + 2);
        original_indices.erase(original_indices.begin() + idx1, original_indices.begin() + idx1 + 2);
    }
    
    cout << result.size() << endl;
    for (int i = 0; i < result.size(); i++) {
        int a = result[i].first;
        int b = result[i].second;
        cout << (a < b ? a : b) << " " << (a < b ? b : a) << endl;
    }
    
    return 0;
}

http://www.yayakq.cn/news/736250/

相关文章:

  • 岳阳网站开发建设定制网站哪个好
  • 石家庄西晨网站开发软件外包行业分析
  • 有没有专门做网站的基于lamp网站建设实例
  • 湖北网站推广公司渠道机械加工网18易3下7拉nrj
  • 怎样创建网站dw中国建设网站银行
  • 苏州企业如何建网站太原网站优化推广
  • 网上购物网站建设规划菜鸟制作个人网站网页实例
  • 武侯区网站建设app拉新推广平台有哪些
  • 怎样创建个人销售网站wordpress单页留言
  • 有道云笔记做网站邢台网站建设有哪些
  • 网站备案ps叫企业做的网站可不可以自己改主题
  • 写作网站中国建筑网官网投诉查询
  • 网站建设海南棋牌网站建设要多少钱
  • 网站建设软文建筑网站制作
  • 网站建设需要多大的空间深度科技商业官方网站
  • 保定模板做网站莱芜论坛都市网
  • 建站高端网站宝塔可以做二级域名网站么
  • 石家庄手机网站制作做网站用linux哪个版本
  • 网站开发软件有哪学校网页设计模板图片
  • 百度一下做网站网站报价表怎么做
  • 太原电商网站设计wordpress 后台路径修改
  • 都有哪些js素材网站国内最好的在线网站建设
  • 加强检察院门户网站建设制作网站是什么专业
  • 任何查询网站有没有做404企业网站seo手机
  • 淘宝做关键词的网站山东济南网站建设优化
  • 腾讯云阻止网站访问手机商城网站设计
  • 数码产品商城网站建设网站建设中 html免费
  • 呼和浩特网站建设SEO优化怎样建设网站是什么
  • 做淘客网站能干嘛商城网站的设计风格
  • 小游戏网站开发需要什么技术下载的主题看起来页面缩小了wordpress