1052. Linked List Sorting (25)解题报告
来源:互联网 发布:windows易升 编辑:程序博客网 时间:2024/05/13 17:24
#define _CRT_SECURE_NO_WARNINGS#include <cstdio>#include <cstdlib>#include <iostream>#include <algorithm>#define N 100000using namespace std;struct node { int address, key, next;};int comp(node n1, node n2);int comp2(node n1, node n2);int binarysearch(node arr[], int n, int target);int main(void) { int n, head, i, index, n2; node *arr = new node[N], *arr2 = new node[N]; setvbuf(stdin, new char[1 << 20], _IOFBF, 1 << 20); setvbuf(stdout, new char[1 << 20], _IOFBF, 1 << 20); scanf("%d %d", &n, &head); for (i = 0; i < n; i++) { scanf("%d %d %d", &arr[i].address, &arr[i].key, &arr[i].next); } sort(arr, arr + n, comp); i = 0; while (head != -1) { index = binarysearch(arr, n, head); arr2[i++] = arr[index]; head = arr[index].next; } n2 = i; sort(arr2, arr2 + n2, comp2); for (i = 0; i < n2 - 1; i++) { arr2[i].next = arr2[i + 1].address; } arr2[i].next = -1; if (n2 > 0) { printf("%d %05d\n", n2, arr2[0].address); for (i = 0; i < n2 - 1; i++) { printf("%05d %d %05d\n", arr2[i].address, arr2[i].key, arr2[i].next); } printf("%05d %d %d", arr2[i].address, arr2[i].key, arr2[i].next); } else { printf("%d %d", n2, -1); } delete[] arr; delete[] arr2; return 0;}int comp(node n1, node n2) { return n1.address < n2.address;}int comp2(node n1, node n2) { return n1.key < n2.key;}int binarysearch(node arr[], int n, int target) { int left, mid, right; left = 0; right = n - 1; while (left <= right) { mid = (left + right) >> 1; if (arr[mid].address > target) { right = mid - 1; } else if (arr[mid].address < target) { left = mid + 1; } else { return mid; } } return -1;}
0 0
- 1052. Linked List Sorting (25)解题报告
- 1052. Linked List Sorting (25)
- 1052. Linked List Sorting (25)
- 1052. Linked List Sorting (25)
- 1052. Linked List Sorting (25)
- 1052. Linked List Sorting (25)
- 1052. Linked List Sorting (25)
- 1052. Linked List Sorting (25)
- 1052. Linked List Sorting (25)
- 1052. Linked List Sorting (25)
- 1052. Linked List Sorting (25)
- 1052. Linked List Sorting (25)
- 1052. Linked List Sorting (25)
- 1052. Linked List Sorting (25)
- 1052. Linked List Sorting (25)
- 1052. Linked List Sorting (25)
- 1052. Linked List Sorting (25)
- 1052. Linked List Sorting (25)
- C#系列——多线程通信
- 中文拼音的正则表达式
- python下载网络图片
- 静态加载fragment
- 圆柱直齿轮设计程序-vb
- 1052. Linked List Sorting (25)解题报告
- 数据结构基本概念
- 众数问题
- python3+pip安装教程--centos6
- 14.jquery DOM操作 遍历DOM树
- org.apache.log4j.Logger详解
- Hadoop2.7.3的安装详细过程(伪分布式)
- 神经网络实战示例一:神经网络中的参数调试研究——手写数字识别综合示例研究2
- 软件公告